oh-my-codex 0.4.3 → 0.5.0
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/README.md +17 -10
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +7 -13
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/native-config.d.ts +20 -0
- package/dist/agents/native-config.d.ts.map +1 -0
- package/dist/agents/native-config.js +84 -0
- package/dist/agents/native-config.js.map +1 -0
- package/dist/catalog/__tests__/generator.test.d.ts +2 -0
- package/dist/catalog/__tests__/generator.test.d.ts.map +1 -0
- package/dist/catalog/__tests__/generator.test.js +42 -0
- package/dist/catalog/__tests__/generator.test.js.map +1 -0
- package/dist/catalog/__tests__/schema.test.d.ts +2 -0
- package/dist/catalog/__tests__/schema.test.d.ts.map +1 -0
- package/dist/catalog/__tests__/schema.test.js +33 -0
- package/dist/catalog/__tests__/schema.test.js.map +1 -0
- package/dist/catalog/reader.d.ts +19 -0
- package/dist/catalog/reader.d.ts.map +1 -0
- package/dist/catalog/reader.js +63 -0
- package/dist/catalog/reader.js.map +1 -0
- package/dist/catalog/schema.d.ts +32 -0
- package/dist/catalog/schema.d.ts.map +1 -0
- package/dist/catalog/schema.js +101 -0
- package/dist/catalog/schema.js.map +1 -0
- package/dist/cli/__tests__/index.test.js +109 -1
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/setup-scope.test.d.ts +2 -0
- package/dist/cli/__tests__/setup-scope.test.d.ts.map +1 -0
- package/dist/cli/__tests__/setup-scope.test.js +164 -0
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -0
- package/dist/cli/catalog-contract.d.ts +10 -0
- package/dist/cli/catalog-contract.d.ts.map +1 -0
- package/dist/cli/catalog-contract.js +24 -0
- package/dist/cli/catalog-contract.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +7 -4
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +124 -99
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup.d.ts +3 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +208 -47
- package/dist/cli/setup.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +28 -0
- package/dist/config/__tests__/generator-notify.test.js.map +1 -1
- package/dist/config/generator.d.ts +1 -0
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +34 -2
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/code-simplifier/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/code-simplifier/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/code-simplifier/__tests__/index.test.js +135 -0
- package/dist/hooks/code-simplifier/__tests__/index.test.js.map +1 -0
- package/dist/hooks/code-simplifier/index.d.ts +74 -0
- package/dist/hooks/code-simplifier/index.d.ts.map +1 -0
- package/dist/hooks/code-simplifier/index.js +145 -0
- package/dist/hooks/code-simplifier/index.js.map +1 -0
- package/dist/hooks/emulator.d.ts.map +1 -1
- package/dist/hooks/emulator.js +0 -1
- package/dist/hooks/emulator.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +0 -3
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/notifications/__tests__/tmux.test.js +61 -1
- package/dist/notifications/__tests__/tmux.test.js.map +1 -1
- package/dist/notifications/__tests__/verbosity.test.d.ts +2 -0
- package/dist/notifications/__tests__/verbosity.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/verbosity.test.js +202 -0
- package/dist/notifications/__tests__/verbosity.test.js.map +1 -0
- package/dist/notifications/config.d.ts +14 -1
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +52 -0
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/formatter.d.ts.map +1 -1
- package/dist/notifications/formatter.js +14 -0
- package/dist/notifications/formatter.js.map +1 -1
- package/dist/notifications/index.d.ts +3 -3
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +14 -4
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/tmux.d.ts +6 -0
- package/dist/notifications/tmux.d.ts.map +1 -1
- package/dist/notifications/tmux.js +31 -1
- package/dist/notifications/tmux.js.map +1 -1
- package/dist/notifications/types.d.ts +13 -0
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/team/__tests__/model-contract.test.d.ts +2 -0
- package/dist/team/__tests__/model-contract.test.d.ts.map +1 -0
- package/dist/team/__tests__/model-contract.test.js +47 -0
- package/dist/team/__tests__/model-contract.test.js.map +1 -0
- package/dist/team/__tests__/phase-controller.test.d.ts +2 -0
- package/dist/team/__tests__/phase-controller.test.d.ts.map +1 -0
- package/dist/team/__tests__/phase-controller.test.js +36 -0
- package/dist/team/__tests__/phase-controller.test.js.map +1 -0
- package/dist/team/__tests__/runtime.test.js +112 -8
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +71 -1
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/model-contract.d.ts +19 -0
- package/dist/team/model-contract.d.ts.map +1 -0
- package/dist/team/model-contract.js +123 -0
- package/dist/team/model-contract.js.map +1 -0
- package/dist/team/orchestrator.d.ts.map +1 -1
- package/dist/team/orchestrator.js +0 -1
- package/dist/team/orchestrator.js.map +1 -1
- package/dist/team/phase-controller.d.ts +10 -0
- package/dist/team/phase-controller.d.ts.map +1 -0
- package/dist/team/phase-controller.js +128 -0
- package/dist/team/phase-controller.js.map +1 -0
- package/dist/team/runtime.d.ts +3 -3
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +40 -74
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/state.d.ts +15 -0
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +35 -0
- package/dist/team/state.js.map +1 -1
- package/dist/team/team-ops.d.ts +3 -1
- package/dist/team/team-ops.d.ts.map +1 -1
- package/dist/team/team-ops.js +2 -0
- package/dist/team/team-ops.js.map +1 -1
- package/dist/team/tmux-session.d.ts +12 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +33 -1
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/utils/paths.d.ts +2 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +4 -0
- package/dist/utils/paths.js.map +1 -1
- package/package.json +2 -2
- package/prompts/code-simplifier.md +91 -0
- package/prompts/product-analyst.md +7 -7
- package/scripts/generate-catalog-docs.js +111 -0
- package/scripts/notify-hook.js +36 -1
- package/skills/build-fix/SKILL.md +3 -3
- package/skills/code-review/SKILL.md +3 -3
- package/skills/help/SKILL.md +4 -4
- package/skills/omx-setup/SKILL.md +24 -15
- package/skills/research/SKILL.md +28 -28
- package/skills/security-review/SKILL.md +3 -3
- package/templates/AGENTS.md +1 -8
- package/templates/catalog-manifest.json +397 -0
- package/prompts/deep-executor.md +0 -19
- package/prompts/scientist.md +0 -89
- package/skills/deepinit/SKILL.md +0 -320
- package/skills/learn-about-omx/SKILL.md +0 -37
- package/skills/learner/SKILL.md +0 -135
- package/skills/pipeline/SKILL.md +0 -407
- package/skills/project-session-manager/SKILL.md +0 -560
- package/skills/psm/SKILL.md +0 -20
- package/skills/release/SKILL.md +0 -83
- package/skills/ultrapilot/SKILL.md +0 -627
- package/skills/writer-memory/SKILL.md +0 -443
package/skills/deepinit/SKILL.md
DELETED
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: deepinit
|
|
3
|
-
description: Deep codebase initialization with hierarchical AGENTS.md documentation
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Deep Init Skill
|
|
7
|
-
|
|
8
|
-
Creates comprehensive, hierarchical AGENTS.md documentation across the entire codebase.
|
|
9
|
-
|
|
10
|
-
## Core Concept
|
|
11
|
-
|
|
12
|
-
AGENTS.md files serve as **AI-readable documentation** that helps agents understand:
|
|
13
|
-
- What each directory contains
|
|
14
|
-
- How components relate to each other
|
|
15
|
-
- Special instructions for working in that area
|
|
16
|
-
- Dependencies and relationships
|
|
17
|
-
|
|
18
|
-
## Hierarchical Tagging System
|
|
19
|
-
|
|
20
|
-
Every AGENTS.md (except root) includes a parent reference tag:
|
|
21
|
-
|
|
22
|
-
```markdown
|
|
23
|
-
<!-- Parent: ../AGENTS.md -->
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
This creates a navigable hierarchy:
|
|
27
|
-
```
|
|
28
|
-
/AGENTS.md ← Root (no parent tag)
|
|
29
|
-
├── src/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
30
|
-
│ ├── src/components/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
31
|
-
│ └── src/utils/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
32
|
-
└── docs/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## AGENTS.md Template
|
|
36
|
-
|
|
37
|
-
```markdown
|
|
38
|
-
<!-- Parent: {relative_path_to_parent}/AGENTS.md -->
|
|
39
|
-
<!-- Generated: {timestamp} | Updated: {timestamp} -->
|
|
40
|
-
|
|
41
|
-
# {Directory Name}
|
|
42
|
-
|
|
43
|
-
## Purpose
|
|
44
|
-
{One-paragraph description of what this directory contains and its role}
|
|
45
|
-
|
|
46
|
-
## Key Files
|
|
47
|
-
{List each significant file with a one-line description}
|
|
48
|
-
|
|
49
|
-
| File | Description |
|
|
50
|
-
|------|-------------|
|
|
51
|
-
| `file.ts` | Brief description of purpose |
|
|
52
|
-
|
|
53
|
-
## Subdirectories
|
|
54
|
-
{List each subdirectory with brief purpose}
|
|
55
|
-
|
|
56
|
-
| Directory | Purpose |
|
|
57
|
-
|-----------|---------|
|
|
58
|
-
| `subdir/` | What it contains (see `subdir/AGENTS.md`) |
|
|
59
|
-
|
|
60
|
-
## For AI Agents
|
|
61
|
-
|
|
62
|
-
### Working In This Directory
|
|
63
|
-
{Special instructions for AI agents modifying files here}
|
|
64
|
-
|
|
65
|
-
### Testing Requirements
|
|
66
|
-
{How to test changes in this directory}
|
|
67
|
-
|
|
68
|
-
### Common Patterns
|
|
69
|
-
{Code patterns or conventions used here}
|
|
70
|
-
|
|
71
|
-
## Dependencies
|
|
72
|
-
|
|
73
|
-
### Internal
|
|
74
|
-
{References to other parts of the codebase this depends on}
|
|
75
|
-
|
|
76
|
-
### External
|
|
77
|
-
{Key external packages/libraries used}
|
|
78
|
-
|
|
79
|
-
<!-- MANUAL: Any manually added notes below this line are preserved on regeneration -->
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Execution Workflow
|
|
83
|
-
|
|
84
|
-
### Step 1: Map Directory Structure
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
spawn_sub_agent(subagent_type="explore", model="haiku",
|
|
88
|
-
prompt="List all directories recursively. Exclude: node_modules, .git, dist, build, __pycache__, .venv, coverage, .next, .nuxt")
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Step 2: Create Work Plan
|
|
92
|
-
|
|
93
|
-
Generate todo items for each directory, organized by depth level:
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
Level 0: / (root)
|
|
97
|
-
Level 1: /src, /docs, /tests
|
|
98
|
-
Level 2: /src/components, /src/utils, /docs/api
|
|
99
|
-
...
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Step 3: Generate Level by Level
|
|
103
|
-
|
|
104
|
-
**IMPORTANT**: Generate parent levels before child levels to ensure parent references are valid.
|
|
105
|
-
|
|
106
|
-
For each directory:
|
|
107
|
-
1. Read all files in the directory
|
|
108
|
-
2. Analyze purpose and relationships
|
|
109
|
-
3. Generate AGENTS.md content
|
|
110
|
-
4. Write file with proper parent reference
|
|
111
|
-
|
|
112
|
-
### Step 4: Compare and Update (if exists)
|
|
113
|
-
|
|
114
|
-
When AGENTS.md already exists:
|
|
115
|
-
|
|
116
|
-
1. **Read existing content**
|
|
117
|
-
2. **Identify sections**:
|
|
118
|
-
- Auto-generated sections (can be updated)
|
|
119
|
-
- Manual sections (`<!-- MANUAL -->` preserved)
|
|
120
|
-
3. **Compare**:
|
|
121
|
-
- New files added?
|
|
122
|
-
- Files removed?
|
|
123
|
-
- Structure changed?
|
|
124
|
-
4. **Merge**:
|
|
125
|
-
- Update auto-generated content
|
|
126
|
-
- Preserve manual annotations
|
|
127
|
-
- Update timestamp
|
|
128
|
-
|
|
129
|
-
### Step 5: Validate Hierarchy
|
|
130
|
-
|
|
131
|
-
After generation, run validation checks:
|
|
132
|
-
|
|
133
|
-
| Check | How to Verify | Corrective Action |
|
|
134
|
-
|-------|--------------|-------------------|
|
|
135
|
-
| Parent references resolve | Read each AGENTS.md, check `<!-- Parent: -->` path exists | Fix path or remove orphan |
|
|
136
|
-
| No orphaned AGENTS.md | Compare AGENTS.md locations to directory structure | Delete orphaned files |
|
|
137
|
-
| Completeness | List all directories, check for AGENTS.md | Generate missing files |
|
|
138
|
-
| Timestamps current | Check `<!-- Generated: -->` dates | Regenerate outdated files |
|
|
139
|
-
|
|
140
|
-
Validation script pattern:
|
|
141
|
-
```bash
|
|
142
|
-
# Find all AGENTS.md files
|
|
143
|
-
find . -name "AGENTS.md" -type f
|
|
144
|
-
|
|
145
|
-
# Check parent references
|
|
146
|
-
grep -r "<!-- Parent:" --include="AGENTS.md" .
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## Smart Delegation
|
|
150
|
-
|
|
151
|
-
| Task | Agent |
|
|
152
|
-
|------|-------|
|
|
153
|
-
| Directory mapping | `explore` |
|
|
154
|
-
| File analysis | `architect-low` |
|
|
155
|
-
| Content generation | `writer` |
|
|
156
|
-
| AGENTS.md writes | `writer` |
|
|
157
|
-
|
|
158
|
-
## Empty Directory Handling
|
|
159
|
-
|
|
160
|
-
When encountering empty or near-empty directories:
|
|
161
|
-
|
|
162
|
-
| Condition | Action |
|
|
163
|
-
|-----------|--------|
|
|
164
|
-
| No files, no subdirectories | **Skip** - do not create AGENTS.md |
|
|
165
|
-
| No files, has subdirectories | Create minimal AGENTS.md with subdirectory listing only |
|
|
166
|
-
| Has only generated files (*.min.js, *.map) | Skip or minimal AGENTS.md |
|
|
167
|
-
| Has only config files | Create AGENTS.md describing configuration purpose |
|
|
168
|
-
|
|
169
|
-
Example minimal AGENTS.md for directory-only containers:
|
|
170
|
-
```markdown
|
|
171
|
-
<!-- Parent: ../AGENTS.md -->
|
|
172
|
-
# {Directory Name}
|
|
173
|
-
|
|
174
|
-
## Purpose
|
|
175
|
-
Container directory for organizing related modules.
|
|
176
|
-
|
|
177
|
-
## Subdirectories
|
|
178
|
-
| Directory | Purpose |
|
|
179
|
-
|-----------|---------|
|
|
180
|
-
| `subdir/` | Description (see `subdir/AGENTS.md`) |
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## Parallelization Rules
|
|
184
|
-
|
|
185
|
-
1. **Same-level directories**: Process in parallel
|
|
186
|
-
2. **Different levels**: Sequential (parent first)
|
|
187
|
-
3. **Large directories**: Spawn dedicated agent per directory
|
|
188
|
-
4. **Small directories**: Batch multiple into one agent
|
|
189
|
-
|
|
190
|
-
## Quality Standards
|
|
191
|
-
|
|
192
|
-
### Must Include
|
|
193
|
-
- [ ] Accurate file descriptions
|
|
194
|
-
- [ ] Correct parent references
|
|
195
|
-
- [ ] Subdirectory links
|
|
196
|
-
- [ ] AI agent instructions
|
|
197
|
-
|
|
198
|
-
### Must Avoid
|
|
199
|
-
- [ ] Generic boilerplate
|
|
200
|
-
- [ ] Incorrect file names
|
|
201
|
-
- [ ] Broken parent references
|
|
202
|
-
- [ ] Missing important files
|
|
203
|
-
|
|
204
|
-
## Example Output
|
|
205
|
-
|
|
206
|
-
### Root AGENTS.md
|
|
207
|
-
```markdown
|
|
208
|
-
<!-- Generated: 2024-01-15 | Updated: 2024-01-15 -->
|
|
209
|
-
|
|
210
|
-
# my-project
|
|
211
|
-
|
|
212
|
-
## Purpose
|
|
213
|
-
A web application for managing user tasks with real-time collaboration features.
|
|
214
|
-
|
|
215
|
-
## Key Files
|
|
216
|
-
| File | Description |
|
|
217
|
-
|------|-------------|
|
|
218
|
-
| `package.json` | Project dependencies and scripts |
|
|
219
|
-
| `tsconfig.json` | TypeScript configuration |
|
|
220
|
-
| `.env.example` | Environment variable template |
|
|
221
|
-
|
|
222
|
-
## Subdirectories
|
|
223
|
-
| Directory | Purpose |
|
|
224
|
-
|-----------|---------|
|
|
225
|
-
| `src/` | Application source code (see `src/AGENTS.md`) |
|
|
226
|
-
| `docs/` | Documentation (see `docs/AGENTS.md`) |
|
|
227
|
-
| `tests/` | Test suites (see `tests/AGENTS.md`) |
|
|
228
|
-
|
|
229
|
-
## For AI Agents
|
|
230
|
-
|
|
231
|
-
### Working In This Directory
|
|
232
|
-
- Always install dependencies after modifying the project manifest
|
|
233
|
-
- Use TypeScript strict mode
|
|
234
|
-
- Follow ESLint rules
|
|
235
|
-
|
|
236
|
-
### Testing Requirements
|
|
237
|
-
- Run tests before committing
|
|
238
|
-
- Ensure >80% coverage
|
|
239
|
-
|
|
240
|
-
### Common Patterns
|
|
241
|
-
- Use barrel exports (index.ts)
|
|
242
|
-
- Prefer functional components
|
|
243
|
-
|
|
244
|
-
## Dependencies
|
|
245
|
-
|
|
246
|
-
### External
|
|
247
|
-
- React 18.x - UI framework
|
|
248
|
-
- TypeScript 5.x - Type safety
|
|
249
|
-
- Vite - Build tool
|
|
250
|
-
|
|
251
|
-
<!-- MANUAL: Custom project notes can be added below -->
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
### Nested AGENTS.md
|
|
255
|
-
```markdown
|
|
256
|
-
<!-- Parent: ../AGENTS.md -->
|
|
257
|
-
<!-- Generated: 2024-01-15 | Updated: 2024-01-15 -->
|
|
258
|
-
|
|
259
|
-
# components
|
|
260
|
-
|
|
261
|
-
## Purpose
|
|
262
|
-
Reusable React components organized by feature and complexity.
|
|
263
|
-
|
|
264
|
-
## Key Files
|
|
265
|
-
| File | Description |
|
|
266
|
-
|------|-------------|
|
|
267
|
-
| `index.ts` | Barrel export for all components |
|
|
268
|
-
| `Button.tsx` | Primary button component |
|
|
269
|
-
| `Modal.tsx` | Modal dialog component |
|
|
270
|
-
|
|
271
|
-
## Subdirectories
|
|
272
|
-
| Directory | Purpose |
|
|
273
|
-
|-----------|---------|
|
|
274
|
-
| `forms/` | Form-related components (see `forms/AGENTS.md`) |
|
|
275
|
-
| `layout/` | Layout components (see `layout/AGENTS.md`) |
|
|
276
|
-
|
|
277
|
-
## For AI Agents
|
|
278
|
-
|
|
279
|
-
### Working In This Directory
|
|
280
|
-
- Each component has its own file
|
|
281
|
-
- Use CSS modules for styling
|
|
282
|
-
- Export via index.ts
|
|
283
|
-
|
|
284
|
-
### Testing Requirements
|
|
285
|
-
- Unit tests in `__tests__/` subdirectory
|
|
286
|
-
- Use React Testing Library
|
|
287
|
-
|
|
288
|
-
### Common Patterns
|
|
289
|
-
- Props interfaces defined above component
|
|
290
|
-
- Use forwardRef for DOM-exposing components
|
|
291
|
-
|
|
292
|
-
## Dependencies
|
|
293
|
-
|
|
294
|
-
### Internal
|
|
295
|
-
- `src/hooks/` - Custom hooks used by components
|
|
296
|
-
- `src/utils/` - Utility functions
|
|
297
|
-
|
|
298
|
-
### External
|
|
299
|
-
- `clsx` - Conditional class names
|
|
300
|
-
- `lucide-react` - Icons
|
|
301
|
-
|
|
302
|
-
<!-- MANUAL: -->
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
## Triggering Update Mode
|
|
306
|
-
|
|
307
|
-
When running on an existing codebase with AGENTS.md files:
|
|
308
|
-
|
|
309
|
-
1. Detect existing files first
|
|
310
|
-
2. Read and parse existing content
|
|
311
|
-
3. Analyze current directory state
|
|
312
|
-
4. Generate diff between existing and current
|
|
313
|
-
5. Apply updates while preserving manual sections
|
|
314
|
-
|
|
315
|
-
## Performance Considerations
|
|
316
|
-
|
|
317
|
-
- **Cache directory listings** - Don't re-scan same directories
|
|
318
|
-
- **Batch small directories** - Process multiple at once
|
|
319
|
-
- **Skip unchanged** - If directory hasn't changed, skip regeneration
|
|
320
|
-
- **Parallel writes** - Multiple agents writing different files simultaneously
|
|
@@ -1,37 +0,0 @@
|
|
|
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.
|
package/skills/learner/SKILL.md
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
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 Codex 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 Codex 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**: ~/.codex/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 Codex 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 Codex 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
|