oh-my-codex 0.1.1

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 (182) hide show
  1. package/README.md +269 -0
  2. package/bin/omx.js +25 -0
  3. package/dist/agents/definitions.d.ts +22 -0
  4. package/dist/agents/definitions.d.ts.map +1 -0
  5. package/dist/agents/definitions.js +235 -0
  6. package/dist/agents/definitions.js.map +1 -0
  7. package/dist/cli/doctor.d.ts +11 -0
  8. package/dist/cli/doctor.d.ts.map +1 -0
  9. package/dist/cli/doctor.js +157 -0
  10. package/dist/cli/doctor.js.map +1 -0
  11. package/dist/cli/index.d.ts +6 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +266 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/cli/setup.d.ts +12 -0
  16. package/dist/cli/setup.d.ts.map +1 -0
  17. package/dist/cli/setup.js +175 -0
  18. package/dist/cli/setup.js.map +1 -0
  19. package/dist/cli/version.d.ts +2 -0
  20. package/dist/cli/version.d.ts.map +1 -0
  21. package/dist/cli/version.js +17 -0
  22. package/dist/cli/version.js.map +1 -0
  23. package/dist/config/generator.d.ts +14 -0
  24. package/dist/config/generator.d.ts.map +1 -0
  25. package/dist/config/generator.js +106 -0
  26. package/dist/config/generator.js.map +1 -0
  27. package/dist/hooks/__tests__/agents-overlay.test.d.ts +8 -0
  28. package/dist/hooks/__tests__/agents-overlay.test.d.ts.map +1 -0
  29. package/dist/hooks/__tests__/agents-overlay.test.js +148 -0
  30. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -0
  31. package/dist/hooks/agents-overlay.d.ts +34 -0
  32. package/dist/hooks/agents-overlay.d.ts.map +1 -0
  33. package/dist/hooks/agents-overlay.js +265 -0
  34. package/dist/hooks/agents-overlay.js.map +1 -0
  35. package/dist/hooks/emulator.d.ts +44 -0
  36. package/dist/hooks/emulator.d.ts.map +1 -0
  37. package/dist/hooks/emulator.js +108 -0
  38. package/dist/hooks/emulator.js.map +1 -0
  39. package/dist/hooks/keyword-detector.d.ts +27 -0
  40. package/dist/hooks/keyword-detector.d.ts.map +1 -0
  41. package/dist/hooks/keyword-detector.js +63 -0
  42. package/dist/hooks/keyword-detector.js.map +1 -0
  43. package/dist/hooks/session.d.ts +38 -0
  44. package/dist/hooks/session.d.ts.map +1 -0
  45. package/dist/hooks/session.js +135 -0
  46. package/dist/hooks/session.js.map +1 -0
  47. package/dist/hud/colors.d.ts +26 -0
  48. package/dist/hud/colors.d.ts.map +1 -0
  49. package/dist/hud/colors.js +71 -0
  50. package/dist/hud/colors.js.map +1 -0
  51. package/dist/hud/index.d.ts +12 -0
  52. package/dist/hud/index.d.ts.map +1 -0
  53. package/dist/hud/index.js +107 -0
  54. package/dist/hud/index.js.map +1 -0
  55. package/dist/hud/render.d.ts +9 -0
  56. package/dist/hud/render.d.ts.map +1 -0
  57. package/dist/hud/render.js +192 -0
  58. package/dist/hud/render.js.map +1 -0
  59. package/dist/hud/state.d.ts +21 -0
  60. package/dist/hud/state.d.ts.map +1 -0
  61. package/dist/hud/state.js +101 -0
  62. package/dist/hud/state.js.map +1 -0
  63. package/dist/hud/types.d.ts +87 -0
  64. package/dist/hud/types.d.ts.map +1 -0
  65. package/dist/hud/types.js +8 -0
  66. package/dist/hud/types.js.map +1 -0
  67. package/dist/index.d.ts +18 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +18 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/mcp/code-intel-server.d.ts +7 -0
  72. package/dist/mcp/code-intel-server.d.ts.map +1 -0
  73. package/dist/mcp/code-intel-server.js +567 -0
  74. package/dist/mcp/code-intel-server.js.map +1 -0
  75. package/dist/mcp/memory-server.d.ts +7 -0
  76. package/dist/mcp/memory-server.d.ts.map +1 -0
  77. package/dist/mcp/memory-server.js +359 -0
  78. package/dist/mcp/memory-server.js.map +1 -0
  79. package/dist/mcp/state-server.d.ts +7 -0
  80. package/dist/mcp/state-server.d.ts.map +1 -0
  81. package/dist/mcp/state-server.js +181 -0
  82. package/dist/mcp/state-server.js.map +1 -0
  83. package/dist/mcp/trace-server.d.ts +7 -0
  84. package/dist/mcp/trace-server.d.ts.map +1 -0
  85. package/dist/mcp/trace-server.js +205 -0
  86. package/dist/mcp/trace-server.js.map +1 -0
  87. package/dist/modes/base.d.ts +50 -0
  88. package/dist/modes/base.d.ts.map +1 -0
  89. package/dist/modes/base.js +140 -0
  90. package/dist/modes/base.js.map +1 -0
  91. package/dist/notifications/notifier.d.ts +30 -0
  92. package/dist/notifications/notifier.d.ts.map +1 -0
  93. package/dist/notifications/notifier.js +124 -0
  94. package/dist/notifications/notifier.js.map +1 -0
  95. package/dist/team/orchestrator.d.ts +54 -0
  96. package/dist/team/orchestrator.d.ts.map +1 -0
  97. package/dist/team/orchestrator.js +106 -0
  98. package/dist/team/orchestrator.js.map +1 -0
  99. package/dist/utils/package.d.ts +9 -0
  100. package/dist/utils/package.d.ts.map +1 -0
  101. package/dist/utils/package.js +31 -0
  102. package/dist/utils/package.js.map +1 -0
  103. package/dist/utils/paths.d.ts +27 -0
  104. package/dist/utils/paths.d.ts.map +1 -0
  105. package/dist/utils/paths.js +60 -0
  106. package/dist/utils/paths.js.map +1 -0
  107. package/dist/verification/verifier.d.ts +32 -0
  108. package/dist/verification/verifier.d.ts.map +1 -0
  109. package/dist/verification/verifier.js +81 -0
  110. package/dist/verification/verifier.js.map +1 -0
  111. package/package.json +54 -0
  112. package/prompts/analyst.md +110 -0
  113. package/prompts/api-reviewer.md +98 -0
  114. package/prompts/architect.md +109 -0
  115. package/prompts/build-fixer.md +89 -0
  116. package/prompts/code-reviewer.md +105 -0
  117. package/prompts/critic.md +87 -0
  118. package/prompts/debugger.md +93 -0
  119. package/prompts/deep-executor.md +112 -0
  120. package/prompts/dependency-expert.md +99 -0
  121. package/prompts/designer.md +103 -0
  122. package/prompts/executor.md +99 -0
  123. package/prompts/explore.md +112 -0
  124. package/prompts/git-master.md +92 -0
  125. package/prompts/information-architect.md +267 -0
  126. package/prompts/performance-reviewer.md +94 -0
  127. package/prompts/planner.md +116 -0
  128. package/prompts/product-analyst.md +299 -0
  129. package/prompts/product-manager.md +255 -0
  130. package/prompts/qa-tester.md +98 -0
  131. package/prompts/quality-reviewer.md +105 -0
  132. package/prompts/quality-strategist.md +227 -0
  133. package/prompts/researcher.md +96 -0
  134. package/prompts/scientist.md +92 -0
  135. package/prompts/security-reviewer.md +125 -0
  136. package/prompts/style-reviewer.md +87 -0
  137. package/prompts/test-engineer.md +103 -0
  138. package/prompts/ux-researcher.md +282 -0
  139. package/prompts/verifier.md +95 -0
  140. package/prompts/vision.md +75 -0
  141. package/prompts/writer.md +86 -0
  142. package/scripts/notify-hook.js +237 -0
  143. package/skills/analyze/SKILL.md +93 -0
  144. package/skills/autopilot/SKILL.md +175 -0
  145. package/skills/build-fix/SKILL.md +123 -0
  146. package/skills/cancel/SKILL.md +387 -0
  147. package/skills/code-review/SKILL.md +208 -0
  148. package/skills/configure-discord/SKILL.md +256 -0
  149. package/skills/configure-telegram/SKILL.md +232 -0
  150. package/skills/deepinit/SKILL.md +320 -0
  151. package/skills/deepsearch/SKILL.md +38 -0
  152. package/skills/doctor/SKILL.md +193 -0
  153. package/skills/ecomode/SKILL.md +114 -0
  154. package/skills/frontend-ui-ux/SKILL.md +34 -0
  155. package/skills/git-master/SKILL.md +29 -0
  156. package/skills/help/SKILL.md +192 -0
  157. package/skills/hud/SKILL.md +97 -0
  158. package/skills/learn-about-omx/SKILL.md +37 -0
  159. package/skills/learner/SKILL.md +135 -0
  160. package/skills/note/SKILL.md +62 -0
  161. package/skills/omx-setup/SKILL.md +1147 -0
  162. package/skills/pipeline/SKILL.md +407 -0
  163. package/skills/plan/SKILL.md +223 -0
  164. package/skills/project-session-manager/SKILL.md +560 -0
  165. package/skills/psm/SKILL.md +20 -0
  166. package/skills/ralph/SKILL.md +197 -0
  167. package/skills/ralph-init/SKILL.md +38 -0
  168. package/skills/ralplan/SKILL.md +34 -0
  169. package/skills/release/SKILL.md +83 -0
  170. package/skills/research/SKILL.md +510 -0
  171. package/skills/review/SKILL.md +30 -0
  172. package/skills/security-review/SKILL.md +284 -0
  173. package/skills/skill/SKILL.md +837 -0
  174. package/skills/swarm/SKILL.md +25 -0
  175. package/skills/tdd/SKILL.md +106 -0
  176. package/skills/team/SKILL.md +860 -0
  177. package/skills/trace/SKILL.md +33 -0
  178. package/skills/ultrapilot/SKILL.md +632 -0
  179. package/skills/ultraqa/SKILL.md +130 -0
  180. package/skills/ultrawork/SKILL.md +143 -0
  181. package/skills/writer-memory/SKILL.md +443 -0
  182. package/templates/AGENTS.md +326 -0
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: git-master
3
+ description: Git expert for atomic commits, rebasing, and history management
4
+ ---
5
+
6
+ # Git Master Command
7
+
8
+ Routes to the git-master agent for git operations.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /git-master <git task>
14
+ ```
15
+
16
+ ## Routing
17
+
18
+ ```
19
+ spawn_sub_agent(subagent_type="oh-my-codex:git-master", model="sonnet", prompt="{{ARGUMENTS}}")
20
+ ```
21
+
22
+ ## Capabilities
23
+ - Atomic commits with conventional format
24
+ - Interactive rebasing
25
+ - Branch management
26
+ - History cleanup
27
+ - Style detection from repo history
28
+
29
+ Task: {{ARGUMENTS}}
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: help
3
+ description: Guide on using oh-my-codex plugin
4
+ ---
5
+
6
+ # How OMX Works
7
+
8
+ **You don't need to learn any commands!** OMX enhances Codex CLI with intelligent behaviors that activate automatically.
9
+
10
+ ## What Happens Automatically
11
+
12
+ | When You... | I Automatically... |
13
+ |-------------|-------------------|
14
+ | Give me a complex task | Parallelize and delegate to specialist agents |
15
+ | Ask me to plan something | Start a planning interview |
16
+ | Need something done completely | Persist until verified complete |
17
+ | Work on UI/frontend | Activate design sensibility |
18
+ | Say "stop" or "cancel" | Intelligently stop current operation |
19
+
20
+ ## Magic Keywords (Optional Shortcuts)
21
+
22
+ You can include these words naturally in your request for explicit control:
23
+
24
+ | Keyword | Effect | Example |
25
+ |---------|--------|---------|
26
+ | **ralph** | Persistence mode | "ralph: fix all the bugs" |
27
+ | **ralplan** | Iterative planning | "ralplan this feature" |
28
+ | **ulw** | Max parallelism | "ulw refactor the API" |
29
+ | **plan** | Planning interview | "plan the new endpoints" |
30
+
31
+ **ralph includes ultrawork:** When you activate ralph mode, it automatically includes ultrawork's parallel execution. No need to combine keywords.
32
+
33
+ ## Stopping Things
34
+
35
+ Just say:
36
+ - "stop"
37
+ - "cancel"
38
+ - "abort"
39
+
40
+ I'll figure out what to stop based on context.
41
+
42
+ ## First Time Setup
43
+
44
+ If you haven't configured OMX yet:
45
+
46
+ ```
47
+ /omc-setup
48
+ ```
49
+
50
+ This is the **only command** you need to know. It downloads the configuration and you're done.
51
+
52
+ ## For 2.x Users
53
+
54
+ Your old commands still work! `/ralph`, `/ultrawork`, `/plan`, etc. all function exactly as before.
55
+
56
+ But now you don't NEED them - everything is automatic.
57
+
58
+ ---
59
+
60
+ ## Usage Analysis
61
+
62
+ Analyze your oh-my-codex usage and get tailored recommendations to improve your workflow.
63
+
64
+ > Note: This replaces the former `/learn-about-omc` skill.
65
+
66
+ ### What It Does
67
+
68
+ 1. Reads token tracking from `~/.omx/state/token-tracking.jsonl`
69
+ 2. Reads session history from `.omx/state/session-history.json`
70
+ 3. Analyzes agent usage patterns
71
+ 4. Identifies underutilized features
72
+ 5. Recommends configuration changes
73
+
74
+ ### Step 1: Gather Data
75
+
76
+ ```bash
77
+ # Check for token tracking data
78
+ TOKEN_FILE="$HOME/.omx/state/token-tracking.jsonl"
79
+ SESSION_FILE=".omx/state/session-history.json"
80
+ CONFIG_FILE="$HOME/.claude/.omx-config.json"
81
+
82
+ echo "Analyzing OMX Usage..."
83
+ echo ""
84
+
85
+ # Check what data is available
86
+ HAS_TOKENS=false
87
+ HAS_SESSIONS=false
88
+ HAS_CONFIG=false
89
+
90
+ if [[ -f "$TOKEN_FILE" ]]; then
91
+ HAS_TOKENS=true
92
+ TOKEN_COUNT=$(wc -l < "$TOKEN_FILE")
93
+ echo "Token records found: $TOKEN_COUNT"
94
+ fi
95
+
96
+ if [[ -f "$SESSION_FILE" ]]; then
97
+ HAS_SESSIONS=true
98
+ SESSION_COUNT=$(cat "$SESSION_FILE" | jq '.sessions | length' 2>/dev/null || echo "0")
99
+ echo "Sessions found: $SESSION_COUNT"
100
+ fi
101
+
102
+ if [[ -f "$CONFIG_FILE" ]]; then
103
+ HAS_CONFIG=true
104
+ DEFAULT_MODE=$(cat "$CONFIG_FILE" | jq -r '.defaultExecutionMode // "not set"')
105
+ echo "Default execution mode: $DEFAULT_MODE"
106
+ fi
107
+ ```
108
+
109
+ ### Step 2: Analyze Agent Usage (if token data exists)
110
+
111
+ ```bash
112
+ if [[ "$HAS_TOKENS" == "true" ]]; then
113
+ echo ""
114
+ echo "TOP AGENTS BY USAGE:"
115
+ cat "$TOKEN_FILE" | jq -r '.agentName // "main"' | sort | uniq -c | sort -rn | head -10
116
+
117
+ echo ""
118
+ echo "MODEL DISTRIBUTION:"
119
+ cat "$TOKEN_FILE" | jq -r '.modelName' | sort | uniq -c | sort -rn
120
+ fi
121
+ ```
122
+
123
+ ### Step 3: Generate Recommendations
124
+
125
+ Based on patterns found, output recommendations:
126
+
127
+ **If high Opus usage (>40%) and no ecomode:**
128
+ - "Consider using ecomode for routine tasks to save tokens"
129
+
130
+ **If no pipeline usage:**
131
+ - "Try /pipeline for code review workflows"
132
+
133
+ **If no security-reviewer usage:**
134
+ - "Use security-reviewer after auth/API changes"
135
+
136
+ **If defaultExecutionMode not set:**
137
+ - "Set defaultExecutionMode in /omc-setup for consistent behavior"
138
+
139
+ ### Step 4: Output Report
140
+
141
+ Format a summary with:
142
+ - Token summary (total, by model)
143
+ - Top agents used
144
+ - Underutilized features
145
+ - Personalized recommendations
146
+
147
+ ### Example Output
148
+
149
+ ```
150
+ 📊 Your OMX Usage Analysis
151
+
152
+ TOKEN SUMMARY:
153
+ - Total records: 1,234
154
+ - By Model: opus 45%, sonnet 40%, haiku 15%
155
+
156
+ TOP AGENTS:
157
+ 1. executor (234 uses)
158
+ 2. architect (89 uses)
159
+ 3. explore (67 uses)
160
+
161
+ UNDERUTILIZED FEATURES:
162
+ - ecomode: 0 uses (could save ~30% on routine tasks)
163
+ - pipeline: 0 uses (great for review workflows)
164
+
165
+ RECOMMENDATIONS:
166
+ 1. Set defaultExecutionMode: "ecomode" to save tokens
167
+ 2. Try /pipeline review for PR reviews
168
+ 3. Use explore agent before architect to save context
169
+ ```
170
+
171
+ ### Graceful Degradation
172
+
173
+ If no data found:
174
+
175
+ ```
176
+ 📊 Limited Usage Data Available
177
+
178
+ No token tracking found. To enable tracking:
179
+ 1. Ensure ~/.omx/state/ directory exists
180
+ 2. Run any OMX command to start tracking
181
+
182
+ Tip: Run /omc-setup to configure OMX properly.
183
+ ```
184
+
185
+ ## Need More Help?
186
+
187
+ - **README**: https://github.com/Yeachan-Heo/oh-my-codex
188
+ - **Issues**: https://github.com/Yeachan-Heo/oh-my-codex/issues
189
+
190
+ ---
191
+
192
+ *Version: 4.2.3*
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: hud
3
+ description: Show or configure the OMX HUD (two-layer statusline)
4
+ role: display
5
+ scope: .omx/**
6
+ ---
7
+
8
+ # HUD Skill
9
+
10
+ The OMX HUD uses a two-layer architecture:
11
+
12
+ 1. **Layer 1 - Codex built-in statusLine**: Real-time TUI footer showing model, git branch, and context usage. Configured via `[tui] status_line` in `~/.codex/config.toml`. Zero code required.
13
+
14
+ 2. **Layer 2 - `omx hud` CLI command**: Shows OMX-specific orchestration state (ralph, ultrawork, autopilot, team, pipeline, ecomode, turns). Reads `.omx/state/` files.
15
+
16
+ ## Quick Commands
17
+
18
+ | Command | Description |
19
+ |---------|-------------|
20
+ | `omx hud` | Show current HUD (modes, turns, activity) |
21
+ | `omx hud --watch` | Live-updating display (polls every 1s) |
22
+ | `omx hud --json` | Raw state output for scripting |
23
+ | `omx hud --preset=minimal` | Minimal display |
24
+ | `omx hud --preset=focused` | Default display |
25
+ | `omx hud --preset=full` | All elements |
26
+
27
+ ## Presets
28
+
29
+ ### minimal
30
+ ```
31
+ [OMX] ralph:3/10 | turns:42
32
+ ```
33
+
34
+ ### focused (default)
35
+ ```
36
+ [OMX] ralph:3/10 | ultrawork | team:3 workers | turns:42 | last:5s ago
37
+ ```
38
+
39
+ ### full
40
+ ```
41
+ [OMX] ralph:3/10 | ultrawork | autopilot:execution | team:3 workers | pipeline:exec | turns:42 | last:5s ago | total-turns:156
42
+ ```
43
+
44
+ ## Setup
45
+
46
+ `omx setup` automatically configures both layers:
47
+ - Adds `[tui] status_line` to `~/.codex/config.toml` (Layer 1)
48
+ - Writes `.omx/hud-config.json` with default preset (Layer 2)
49
+
50
+ ## Layer 1: Codex Built-in StatusLine
51
+
52
+ Configured in `~/.codex/config.toml`:
53
+ ```toml
54
+ [tui]
55
+ status_line = ["model-with-reasoning", "git-branch", "context-remaining"]
56
+ ```
57
+
58
+ Available built-in items (Codex CLI v0.101.0+):
59
+ `model-name`, `model-with-reasoning`, `current-dir`, `project-root`, `git-branch`, `context-remaining`, `context-used`, `five-hour-limit`, `weekly-limit`, `codex-version`, `context-window-size`, `used-tokens`, `total-input-tokens`, `total-output-tokens`, `session-id`
60
+
61
+ ## Layer 2: OMX Orchestration HUD
62
+
63
+ The `omx hud` command reads these state files:
64
+ - `.omx/state/ralph-state.json` - Ralph loop iteration
65
+ - `.omx/state/ultrawork-state.json` - Ultrawork mode
66
+ - `.omx/state/autopilot-state.json` - Autopilot phase
67
+ - `.omx/state/team-state.json` - Team workers
68
+ - `.omx/state/pipeline-state.json` - Pipeline stage
69
+ - `.omx/state/ecomode-state.json` - Ecomode active
70
+ - `.omx/state/hud-state.json` - Last activity (from notify hook)
71
+ - `.omx/metrics.json` - Turn counts
72
+
73
+ ## Configuration
74
+
75
+ HUD config stored at `.omx/hud-config.json`:
76
+ ```json
77
+ {
78
+ "preset": "focused"
79
+ }
80
+ ```
81
+
82
+ ## Color Coding
83
+
84
+ - **Green**: Normal/healthy
85
+ - **Yellow**: Warning (ralph >70% of max)
86
+ - **Red**: Critical (ralph >90% of max)
87
+
88
+ ## Troubleshooting
89
+
90
+ If the TUI statusline is not showing:
91
+ 1. Ensure Codex CLI v0.101.0+ is installed
92
+ 2. Run `omx setup` to configure `[tui]` section
93
+ 3. Restart Codex CLI
94
+
95
+ If `omx hud` shows "No active modes":
96
+ - This is expected when no workflows are running
97
+ - Start a workflow (ralph, autopilot, etc.) and check again
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: learn-about-omx
3
+ description: Learn about your OMX usage patterns and get personalized recommendations
4
+ ---
5
+
6
+ # Learn About OMX
7
+
8
+ Analyze your OMX usage patterns and provide personalized recommendations for getting more out of oh-my-codex.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /learn-about-omx
14
+ ```
15
+
16
+ ## Behavior
17
+
18
+ 1. **Scan usage data** from:
19
+ - `.omx/sessions/` for session history
20
+ - `.omx/state/` for mode usage patterns
21
+ - `.omx/notepad.md` for working memory
22
+ - `.omx/project-memory.json` for project context
23
+ - Agent flow traces for tool and agent usage
24
+ 2. **Analyze patterns**:
25
+ - Most-used modes and skills
26
+ - Agent types spawned most frequently
27
+ - Common workflows and task types
28
+ - Session durations and completion rates
29
+ 3. **Generate recommendations**:
30
+ - Underused features that match your workflow
31
+ - More efficient skill combinations
32
+ - Configuration optimizations
33
+ - Tips based on your usage profile
34
+
35
+ ## Output
36
+
37
+ A personalized report with usage statistics and actionable recommendations for improving your OMX workflow.
@@ -0,0 +1,135 @@
1
+ ---
2
+ name: learner
3
+ description: Extract a learned skill from the current conversation
4
+ ---
5
+
6
+ # Learner Skill
7
+
8
+ ## The Insight
9
+
10
+ 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.
11
+
12
+ **The difference:**
13
+ - BAD (mimicking): "When you see ConnectionResetError, add this try/except block"
14
+ - 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."
15
+
16
+ A good skill changes how Claude APPROACHES problems, not just what code it produces.
17
+
18
+ ## Why This Matters
19
+
20
+ Before extracting a skill, ask yourself:
21
+ - "Could someone Google this in 5 minutes?" → If yes, STOP. Don't extract.
22
+ - "Is this specific to THIS codebase?" → If no, STOP. Don't extract.
23
+ - "Did this take real debugging effort to discover?" → If no, STOP. Don't extract.
24
+
25
+ If a potential skill fails any of these questions, it's not worth saving.
26
+
27
+ ## Recognition Pattern
28
+
29
+ Use /learner ONLY after:
30
+ - Solving a tricky bug that required deep investigation
31
+ - Discovering a non-obvious workaround specific to this codebase
32
+ - Finding a hidden gotcha that wastes time when forgotten
33
+ - Uncovering undocumented behavior that affects this project
34
+
35
+ ## The Approach
36
+
37
+ ### Extraction Process
38
+
39
+ **Step 1: Gather Required Information**
40
+
41
+ - **Problem Statement**: The SPECIFIC error, symptom, or confusion that occurred
42
+ - Include actual error messages, file paths, line numbers
43
+ - Example: "TypeError in src/hooks/session.ts:45 when sessionId is undefined after restart"
44
+
45
+ - **Solution**: The EXACT fix, not general advice
46
+ - Include code snippets, file paths, configuration changes
47
+ - Example: "Add null check before accessing session.user, regenerate session on 401"
48
+
49
+ - **Triggers**: Keywords that would appear when hitting this problem again
50
+ - Use error message fragments, file names, symptom descriptions
51
+ - Example: ["sessionId undefined", "session.ts TypeError", "401 session"]
52
+
53
+ - **Scope**: Almost always Project-level unless it's a truly universal insight
54
+
55
+ **Step 2: Quality Validation**
56
+
57
+ The system REJECTS skills that are:
58
+ - Too generic (no file paths, line numbers, or specific error messages)
59
+ - Easily Googleable (standard patterns, library usage)
60
+ - Vague solutions (no code snippets or precise instructions)
61
+ - Poor triggers (generic words that match everything)
62
+
63
+ **Step 3: Save Location**
64
+
65
+ - **User-level**: ~/.claude/skills/omc-learned/ - Rare. Only for truly portable insights.
66
+ - **Project-level**: .omx/skills/ - Default. Version-controlled with repo.
67
+
68
+ ### What Makes a USEFUL Skill
69
+
70
+ **CRITICAL**: Not every solution is worth saving. A good skill is:
71
+
72
+ 1. **Non-Googleable**: Something you couldn't easily find via search
73
+ - BAD: "How to read files in TypeScript" ❌
74
+ - GOOD: "This codebase uses custom path resolution in ESM that requires fileURLToPath + specific relative paths" ✓
75
+
76
+ 2. **Context-Specific**: References actual files, error messages, or patterns from THIS codebase
77
+ - BAD: "Use try/catch for error handling" ❌
78
+ - GOOD: "The aiohttp proxy in server.py:42 crashes on ClientDisconnectedError - wrap StreamResponse in try/except" ✓
79
+
80
+ 3. **Actionable with Precision**: Tells you exactly WHAT to do and WHERE
81
+ - BAD: "Handle edge cases" ❌
82
+ - GOOD: "When seeing 'Cannot find module' in dist/, check tsconfig.json moduleResolution matches package.json type field" ✓
83
+
84
+ 4. **Hard-Won**: Took significant debugging effort to discover
85
+ - BAD: Generic programming patterns ❌
86
+ - GOOD: "Race condition in worker.ts - the Promise.all at line 89 needs await before the map callback returns" ✓
87
+
88
+ ### Anti-Patterns (DO NOT EXTRACT)
89
+
90
+ - Generic programming patterns (use documentation instead)
91
+ - Refactoring techniques (these are universal)
92
+ - Library usage examples (use library docs)
93
+ - Type definitions or boilerplate
94
+ - Anything a junior dev could Google in 5 minutes
95
+
96
+ ## Skill Format
97
+
98
+ Skills are saved as markdown with this structure:
99
+
100
+ ### YAML Frontmatter
101
+
102
+ Standard metadata fields:
103
+ - id, name, description, source, triggers, quality
104
+
105
+ ### Body Structure (Required)
106
+
107
+ ```markdown
108
+ # [Skill Name]
109
+
110
+ ## The Insight
111
+ What is the underlying PRINCIPLE you discovered? Not the code, but the mental model.
112
+ Example: "Async I/O operations are independently failable. Client lifecycle != server lifecycle."
113
+
114
+ ## Why This Matters
115
+ What goes wrong if you don't know this? What symptom led you here?
116
+ Example: "Proxy server crashes on client disconnect, taking down other requests."
117
+
118
+ ## Recognition Pattern
119
+ How do you know when this skill applies? What are the signs?
120
+ Example: "Building any long-lived connection handler (proxy, websocket, SSE)"
121
+
122
+ ## The Approach
123
+ The decision-making heuristic, not just code. How should Claude THINK about this?
124
+ Example: "For each I/O operation, ask: what if this fails right now? Handle it locally."
125
+
126
+ ## Example (Optional)
127
+ If code helps, show it - but as illustration of the principle, not copy-paste material.
128
+ ```
129
+
130
+ **Key**: A skill is REUSABLE if Claude can apply it to NEW situations, not just identical ones.
131
+
132
+ ## Related Commands
133
+
134
+ - /note - Save quick notes that survive compaction (less formal than skills)
135
+ - /ralph - Start a development loop with learning capture
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: note
3
+ description: Save notes to notepad.md for compaction resilience
4
+ ---
5
+
6
+ # Note Skill
7
+
8
+ Save important context to `.omx/notepad.md` that survives conversation compaction.
9
+
10
+ ## Usage
11
+
12
+ | Command | Action |
13
+ |---------|--------|
14
+ | `/note <content>` | Add to Working Memory with timestamp |
15
+ | `/note --priority <content>` | Add to Priority Context (always loaded) |
16
+ | `/note --manual <content>` | Add to MANUAL section (never pruned) |
17
+ | `/note --show` | Display current notepad contents |
18
+ | `/note --prune` | Remove entries older than 7 days |
19
+ | `/note --clear` | Clear Working Memory (keep Priority + MANUAL) |
20
+
21
+ ## Sections
22
+
23
+ ### Priority Context (500 char limit)
24
+ - **Always** injected on session start
25
+ - Use for critical facts: "Project uses pnpm", "API in src/api/client.ts"
26
+ - Keep it SHORT - this eats into your context budget
27
+
28
+ ### Working Memory
29
+ - Timestamped session notes
30
+ - Auto-pruned after 7 days
31
+ - Good for: debugging breadcrumbs, temporary findings
32
+
33
+ ### MANUAL
34
+ - Never auto-pruned
35
+ - User-controlled permanent notes
36
+ - Good for: team contacts, deployment info
37
+
38
+ ## Examples
39
+
40
+ ```
41
+ /note Found auth bug in UserContext - missing useEffect dependency
42
+ /note --priority Project uses TypeScript strict mode, all files in src/
43
+ /note --manual Contact: api-team@company.com for backend questions
44
+ /note --show
45
+ /note --prune
46
+ ```
47
+
48
+ ## Behavior
49
+
50
+ 1. Creates `.omx/notepad.md` if it doesn't exist
51
+ 2. Parses the argument to determine section
52
+ 3. Appends content with timestamp (for Working Memory)
53
+ 4. Warns if Priority Context exceeds 500 chars
54
+ 5. Confirms what was saved
55
+
56
+ ## Integration
57
+
58
+ Notepad content is automatically loaded on session start:
59
+ - Priority Context: ALWAYS loaded
60
+ - Working Memory: Loaded if recent entries exist
61
+
62
+ This helps survive conversation compaction without losing critical context.