claudecode-omc 5.4.0 → 5.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/.local/guidelines/CLAUDE.md +31 -0
- package/README.md +57 -1
- package/bundled/manifest.json +2 -2
- package/bundled/upstream/oh-my-claudecode/agents/analyst.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/architect.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/code-reviewer.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/code-simplifier.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/critic.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/debugger.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/designer.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/document-specialist.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/executor.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/explore.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/git-master.md +3 -3
- package/bundled/upstream/oh-my-claudecode/agents/planner.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/qa-tester.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/scientist.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/security-reviewer.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/test-engineer.md +1 -75
- package/bundled/upstream/oh-my-claudecode/agents/tracer.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/verifier.md +1 -1
- package/bundled/upstream/oh-my-claudecode/agents/writer.md +1 -1
- package/bundled/upstream/oh-my-claudecode/hooks/hooks.json +21 -1
- package/bundled/upstream/oh-my-claudecode/skills/AGENTS.md +200 -0
- package/bundled/upstream/oh-my-claudecode/skills/autopilot/SKILL.md +17 -10
- package/bundled/upstream/oh-my-claudecode/skills/autoresearch/SKILL.md +90 -0
- package/bundled/upstream/oh-my-claudecode/skills/cancel/SKILL.md +15 -6
- package/bundled/upstream/oh-my-claudecode/skills/configure-notifications/SKILL.md +12 -12
- package/bundled/upstream/oh-my-claudecode/skills/debug/SKILL.md +35 -0
- package/bundled/upstream/oh-my-claudecode/skills/deep-dive/SKILL.md +4 -0
- package/bundled/upstream/oh-my-claudecode/skills/deep-interview/SKILL.md +23 -18
- package/bundled/upstream/oh-my-claudecode/skills/hud/SKILL.md +23 -101
- package/bundled/upstream/oh-my-claudecode/skills/learner/SKILL.md +27 -2
- package/bundled/upstream/oh-my-claudecode/skills/mcp-setup/SKILL.md +67 -8
- package/bundled/upstream/oh-my-claudecode/skills/omc-doctor/SKILL.md +32 -47
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/SKILL.md +4 -2
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/01-install-claude-md.md +15 -4
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/02-configure.md +9 -9
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/03-integrations.md +13 -13
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/04-welcome.md +3 -3
- package/bundled/upstream/oh-my-claudecode/skills/omc-teams/SKILL.md +28 -0
- package/bundled/upstream/oh-my-claudecode/skills/plan/SKILL.md +1 -0
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/SKILL.md +25 -5
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/config.sh +2 -15
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/github.sh +1 -1
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/session.sh +2 -2
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/tmux.sh +109 -4
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/worktree.sh +26 -0
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/psm.sh +46 -5
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/templates/pr-review.md +5 -2
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/templates/projects.json +1 -1
- package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/tests/test-psm-prompt-injection.sh +336 -0
- package/bundled/upstream/oh-my-claudecode/skills/ralph/SKILL.md +18 -9
- package/bundled/upstream/oh-my-claudecode/skills/ralplan/SKILL.md +2 -0
- package/bundled/upstream/oh-my-claudecode/skills/release/SKILL.md +167 -57
- package/bundled/upstream/oh-my-claudecode/skills/remember/SKILL.md +41 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/SKILL.md +391 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/data_contracts.md +274 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/scripts/plot_progress.py +128 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/scripts/resolve-paths.mjs +192 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/scripts/validate.sh +404 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/si-benchmark-builder.md +79 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/si-goal-clarifier.md +94 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/si-researcher.md +73 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/templates/agent-settings.json +14 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/templates/goal.md +22 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/templates/harness.md +18 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/templates/idea.md +5 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/templates/settings.json +23 -0
- package/bundled/upstream/oh-my-claudecode/skills/skill/SKILL.md +46 -77
- package/bundled/upstream/oh-my-claudecode/skills/skillify/SKILL.md +53 -0
- package/bundled/upstream/oh-my-claudecode/skills/team/SKILL.md +83 -11
- package/bundled/upstream/oh-my-claudecode/skills/trace/SKILL.md +1 -0
- package/bundled/upstream/oh-my-claudecode/skills/ultraqa/SKILL.md +1 -0
- package/bundled/upstream/oh-my-claudecode/skills/ultrawork/SKILL.md +1 -0
- package/bundled/upstream/oh-my-claudecode/skills/verify/SKILL.md +37 -0
- package/bundled/upstream/oh-my-claudecode/skills/wiki/SKILL.md +67 -0
- package/package.json +3 -1
- package/src/cli/artifact.js +47 -0
- package/src/cli/guidelines.js +83 -0
- package/src/cli/index.js +13 -1
- package/src/cli/setup.js +35 -17
- package/src/cli/source.js +35 -1
- package/src/config/artifact-types.js +12 -2
- package/src/config/paths.js +95 -4
- package/src/config/sources.js +29 -5
- package/src/guidelines/apply.js +152 -0
- package/src/guidelines/optimizer.js +325 -0
- package/src/merge/claude-md-merger.js +35 -12
- package/bundled/upstream/oh-my-claudecode/skills/omc-doctor/skill-debugger.md +0 -101
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Harness Rules
|
|
2
|
+
|
|
3
|
+
## H001 — One Hypothesis Per Plan
|
|
4
|
+
Each plan must test exactly ONE hypothesis. Plans with zero or multiple hypotheses are rejected by the critic.
|
|
5
|
+
|
|
6
|
+
## H002 — No Approach Family Streak
|
|
7
|
+
The same `approach_family` must not appear as the winner for 3 or more consecutive iterations. This prevents the system from getting stuck in a local exploration loop.
|
|
8
|
+
|
|
9
|
+
## H003 — Intra-Round Diversity
|
|
10
|
+
Within a single round, no two plans may share the same `approach_family`. The critic rejects the later plan if a duplicate family is detected.
|
|
11
|
+
|
|
12
|
+
## Custom Rules
|
|
13
|
+
<!-- Add project-specific rules here -->
|
|
14
|
+
|
|
15
|
+
## Custom Approach Families
|
|
16
|
+
<!-- Add custom approach families here (one per line, prefixed with - or *) -->
|
|
17
|
+
<!-- Example: -->
|
|
18
|
+
<!-- - `prompt_engineering` -->
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Experiment Ideas
|
|
2
|
+
|
|
3
|
+
<!-- Add your experiment ideas here. These will be given highest priority by the planners. -->
|
|
4
|
+
<!-- Format: one idea per section with a title and description. -->
|
|
5
|
+
<!-- Ideas are consumed once per iteration and cleared after planners read them. -->
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"si_claude_setting": false,
|
|
3
|
+
"number_of_agents": 3,
|
|
4
|
+
"number_of_max_critics": 3,
|
|
5
|
+
"current_repo_url": "",
|
|
6
|
+
"fork_url": "",
|
|
7
|
+
"upstream_url": "",
|
|
8
|
+
"topic_slug": "default",
|
|
9
|
+
"target_branch": "main",
|
|
10
|
+
"benchmark_command": "",
|
|
11
|
+
"benchmark_format": "json",
|
|
12
|
+
"benchmark_direction": "higher_is_better",
|
|
13
|
+
"max_iterations": 50,
|
|
14
|
+
"plateau_threshold": 0.01,
|
|
15
|
+
"plateau_window": 3,
|
|
16
|
+
"target_value": null,
|
|
17
|
+
"primary_metric": "primary",
|
|
18
|
+
"sealed_files": [],
|
|
19
|
+
"regression_threshold": 0.05,
|
|
20
|
+
"circuit_breaker_threshold": 3,
|
|
21
|
+
"auto_push": false,
|
|
22
|
+
"auto_pr": false
|
|
23
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: skill
|
|
3
3
|
description: Manage local skills - list, add, remove, search, edit, setup wizard
|
|
4
4
|
argument-hint: "<command> [args]"
|
|
5
|
+
level: 2
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Skill Management CLI
|
|
@@ -12,18 +13,23 @@ Meta-skill for managing oh-my-claudecode skills via CLI-like commands.
|
|
|
12
13
|
|
|
13
14
|
### /skill list
|
|
14
15
|
|
|
15
|
-
Show all
|
|
16
|
+
Show all available skills organized by scope.
|
|
16
17
|
|
|
17
18
|
**Behavior:**
|
|
18
|
-
1. Scan
|
|
19
|
-
2. Scan
|
|
19
|
+
1. Scan bundled built-in skills in the plugin `skills/` directory (read-only)
|
|
20
|
+
2. Scan user skills at `${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/`
|
|
20
21
|
3. Scan project skills at `.omc/skills/`
|
|
21
|
-
4.
|
|
22
|
-
5.
|
|
23
|
-
6. Display in organized table format:
|
|
22
|
+
4. Parse YAML frontmatter for metadata
|
|
23
|
+
5. Display in organized table format:
|
|
24
24
|
|
|
25
25
|
```
|
|
26
|
-
|
|
26
|
+
BUILT-IN SKILLS (bundled with oh-my-claudecode):
|
|
27
|
+
| Name | Description | Scope |
|
|
28
|
+
|-------------------|--------------------------------|----------|
|
|
29
|
+
| visual-verdict | Structured visual QA verdicts | built-in |
|
|
30
|
+
| ralph | Persistence loop | built-in |
|
|
31
|
+
|
|
32
|
+
USER SKILLS (~/.claude/skills/omc-learned/):
|
|
27
33
|
| Name | Triggers | Quality | Usage | Scope |
|
|
28
34
|
|-------------------|--------------------|---------|-------|-------|
|
|
29
35
|
| error-handler | fix, error | 95% | 42 | user |
|
|
@@ -33,16 +39,12 @@ PROJECT SKILLS (.omc/skills/):
|
|
|
33
39
|
| Name | Triggers | Quality | Usage | Scope |
|
|
34
40
|
|-------------------|--------------------|---------|-------|---------|
|
|
35
41
|
| test-runner | test, run | 92% | 15 | project |
|
|
36
|
-
|
|
37
|
-
BUILTIN SKILLS (~/.claude/plugins/oh-my-claudecode/skills):
|
|
38
|
-
| Name | Source | Scope |
|
|
39
|
-
|-------------------|---------|---------|
|
|
40
|
-
| omc-setup | plugin | builtin |
|
|
41
|
-
| code-review | plugin | builtin |
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
**Fallback:** If quality/usage stats not available, show "N/A"
|
|
45
45
|
|
|
46
|
+
**Built-in skill note:** Built-in skills are bundled with oh-my-claudecode and are discoverable/readable, but not removed or edited through `/skill remove` or `/skill edit`.
|
|
47
|
+
|
|
46
48
|
---
|
|
47
49
|
|
|
48
50
|
### /skill add [name]
|
|
@@ -59,8 +61,8 @@ Interactive wizard for creating a new skill.
|
|
|
59
61
|
4. **Ask for argument hint** (optional)
|
|
60
62
|
- Example: "<file> [options]"
|
|
61
63
|
5. **Ask for scope:**
|
|
62
|
-
- `user` →
|
|
63
|
-
- `project` → `.omc/skills/<name
|
|
64
|
+
- `user` → `${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<name>/SKILL.md`
|
|
65
|
+
- `project` → `.omc/skills/<name>/SKILL.md`
|
|
64
66
|
6. **Create skill file** with template:
|
|
65
67
|
|
|
66
68
|
```yaml
|
|
@@ -113,7 +115,7 @@ Triggers (comma-separated): log, logger, logging
|
|
|
113
115
|
Argument hint (optional): <level> [message]
|
|
114
116
|
Scope (user/project): user
|
|
115
117
|
|
|
116
|
-
✓ Created skill at ~/.
|
|
118
|
+
✓ Created skill at ~/.claude/skills/omc-learned/custom-logger/SKILL.md
|
|
117
119
|
→ Edit with: /skill edit custom-logger
|
|
118
120
|
```
|
|
119
121
|
|
|
@@ -125,13 +127,13 @@ Remove a skill by name.
|
|
|
125
127
|
|
|
126
128
|
**Behavior:**
|
|
127
129
|
1. **Search for skill** in both scopes:
|
|
128
|
-
-
|
|
129
|
-
- `.omc/skills/<name
|
|
130
|
+
- `${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<name>/SKILL.md`
|
|
131
|
+
- `.omc/skills/<name>/SKILL.md`
|
|
130
132
|
2. **If found:**
|
|
131
133
|
- Display skill info (name, description, scope)
|
|
132
134
|
- **Ask for confirmation:** "Delete '<name>' skill from <scope>? (yes/no)"
|
|
133
135
|
3. **If confirmed:**
|
|
134
|
-
- Delete
|
|
136
|
+
- Delete entire skill directory (e.g., `${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<name>/`)
|
|
135
137
|
- Report: "✓ Removed skill '<name>' from <scope>"
|
|
136
138
|
4. **If not found:**
|
|
137
139
|
- Report: "✗ Skill '<name>' not found in user or project scope"
|
|
@@ -143,7 +145,7 @@ Remove a skill by name.
|
|
|
143
145
|
User: /skill remove old-logger
|
|
144
146
|
Assistant: Found skill 'old-logger' in user scope:
|
|
145
147
|
Description: Legacy logging utility
|
|
146
|
-
Scope: user (~/.
|
|
148
|
+
Scope: user (~/.claude/skills/omc-learned/)
|
|
147
149
|
|
|
148
150
|
Delete 'old-logger' skill? (yes/no)
|
|
149
151
|
|
|
@@ -259,13 +261,13 @@ Show detailed information about a skill.
|
|
|
259
261
|
|
|
260
262
|
```
|
|
261
263
|
Skill: custom-logger
|
|
262
|
-
Scope: user (~/.
|
|
264
|
+
Scope: user (~/.claude/skills/omc-learned/custom-logger/)
|
|
263
265
|
Description: Enhanced logging with structured output
|
|
264
266
|
Triggers: log, logger, logging
|
|
265
267
|
Argument Hint: <level> [message]
|
|
266
268
|
Quality: 95% (if available)
|
|
267
269
|
Usage Count: 42 times (if available)
|
|
268
|
-
File Path: /home/user/.
|
|
270
|
+
File Path: /home/user/.claude/skills/omc-learned/custom-logger/SKILL.md
|
|
269
271
|
|
|
270
272
|
--- FULL CONTENT ---
|
|
271
273
|
[entire markdown content]
|
|
@@ -280,7 +282,7 @@ Assistant: Skill: custom-logger
|
|
|
280
282
|
Scope: user
|
|
281
283
|
Description: Enhanced logging with structured output
|
|
282
284
|
Triggers: log, logger, logging
|
|
283
|
-
File: ~/.
|
|
285
|
+
File: ~/.claude/skills/omc-learned/custom-logger/SKILL.md
|
|
284
286
|
|
|
285
287
|
--- CONTENT ---
|
|
286
288
|
# Custom Logger Skill
|
|
@@ -298,7 +300,7 @@ Sync skills between user and project scopes.
|
|
|
298
300
|
|
|
299
301
|
**Behavior:**
|
|
300
302
|
1. **Scan both scopes:**
|
|
301
|
-
- User skills:
|
|
303
|
+
- User skills: `${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/`
|
|
302
304
|
- Project skills: `.omc/skills/`
|
|
303
305
|
2. **Compare and categorize:**
|
|
304
306
|
- User-only skills (not in project)
|
|
@@ -367,9 +369,8 @@ Interactive wizard for setting up and managing local skills (formerly local-skil
|
|
|
367
369
|
First, check if skill directories exist and create them if needed:
|
|
368
370
|
|
|
369
371
|
```bash
|
|
370
|
-
# Check and create user-level skills
|
|
371
|
-
USER_SKILLS_DIR="$HOME/.
|
|
372
|
-
LEGACY_USER_SKILLS_DIR="$HOME/.claude/skills/omc-learned"
|
|
372
|
+
# Check and create user-level skills directory
|
|
373
|
+
USER_SKILLS_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/omc-learned"
|
|
373
374
|
if [ -d "$USER_SKILLS_DIR" ]; then
|
|
374
375
|
echo "User skills directory exists: $USER_SKILLS_DIR"
|
|
375
376
|
else
|
|
@@ -377,13 +378,6 @@ else
|
|
|
377
378
|
echo "Created user skills directory: $USER_SKILLS_DIR"
|
|
378
379
|
fi
|
|
379
380
|
|
|
380
|
-
if [ -d "$LEGACY_USER_SKILLS_DIR" ]; then
|
|
381
|
-
echo "Legacy user skills directory exists: $LEGACY_USER_SKILLS_DIR"
|
|
382
|
-
else
|
|
383
|
-
mkdir -p "$LEGACY_USER_SKILLS_DIR"
|
|
384
|
-
echo "Created legacy user skills directory: $LEGACY_USER_SKILLS_DIR"
|
|
385
|
-
fi
|
|
386
|
-
|
|
387
381
|
# Check and create project-level skills directory
|
|
388
382
|
PROJECT_SKILLS_DIR=".omc/skills"
|
|
389
383
|
if [ -d "$PROJECT_SKILLS_DIR" ]; then
|
|
@@ -399,34 +393,28 @@ fi
|
|
|
399
393
|
Scan both directories and show a comprehensive inventory:
|
|
400
394
|
|
|
401
395
|
```bash
|
|
402
|
-
# Scan user-level skills
|
|
403
|
-
echo "=== USER-LEVEL SKILLS (~/.
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
echo "
|
|
411
|
-
|
|
412
|
-
if [ $USER_COUNT -gt 0 ]; then
|
|
413
|
-
echo ""
|
|
414
|
-
echo "Skills found:"
|
|
415
|
-
for USER_DIR in "$HOME/.omc/skills" "$HOME/.claude/skills/omc-learned"; do
|
|
416
|
-
[ -d "$USER_DIR" ] || continue
|
|
417
|
-
find "$USER_DIR" -name "*.md" -type f -exec sh -c '
|
|
396
|
+
# Scan user-level skills
|
|
397
|
+
echo "=== USER-LEVEL SKILLS (~/.claude/skills/omc-learned/) ==="
|
|
398
|
+
if [ -d "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/omc-learned" ]; then
|
|
399
|
+
USER_COUNT=$(find "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/omc-learned" -name "*.md" 2>/dev/null | wc -l)
|
|
400
|
+
echo "Total skills: $USER_COUNT"
|
|
401
|
+
|
|
402
|
+
if [ $USER_COUNT -gt 0 ]; then
|
|
403
|
+
echo ""
|
|
404
|
+
echo "Skills found:"
|
|
405
|
+
find "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/omc-learned" -name "*.md" -type f -exec sh -c '
|
|
418
406
|
FILE="$1"
|
|
419
407
|
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
|
|
420
408
|
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
|
|
421
409
|
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
|
|
422
|
-
[ -z "$NAME" ] && NAME=$(basename "$FILE" .md)
|
|
423
410
|
echo " - $NAME"
|
|
424
411
|
[ -n "$DESC" ] && echo " Description: $DESC"
|
|
425
|
-
echo " File: $FILE"
|
|
426
412
|
echo " Modified: $MODIFIED"
|
|
427
413
|
echo ""
|
|
428
414
|
' sh {} \;
|
|
429
|
-
|
|
415
|
+
fi
|
|
416
|
+
else
|
|
417
|
+
echo "Directory not found"
|
|
430
418
|
fi
|
|
431
419
|
|
|
432
420
|
echo ""
|
|
@@ -453,19 +441,8 @@ else
|
|
|
453
441
|
echo "Directory not found"
|
|
454
442
|
fi
|
|
455
443
|
|
|
456
|
-
# Scan builtin plugin skills (read-only)
|
|
457
|
-
echo ""
|
|
458
|
-
echo "=== BUILTIN SKILLS (~/.claude/plugins/oh-my-claudecode/skills/) ==="
|
|
459
|
-
if [ -d "$HOME/.claude/plugins/oh-my-claudecode/skills" ]; then
|
|
460
|
-
BUILTIN_COUNT=$(find "$HOME/.claude/plugins/oh-my-claudecode/skills" -name "SKILL.md" 2>/dev/null | wc -l)
|
|
461
|
-
echo "Total skills: $BUILTIN_COUNT"
|
|
462
|
-
else
|
|
463
|
-
BUILTIN_COUNT=0
|
|
464
|
-
echo "Directory not found (plugin may not be installed yet)"
|
|
465
|
-
fi
|
|
466
|
-
|
|
467
444
|
# Summary
|
|
468
|
-
TOTAL=$((USER_COUNT + PROJECT_COUNT
|
|
445
|
+
TOTAL=$((USER_COUNT + PROJECT_COUNT))
|
|
469
446
|
echo "=== SUMMARY ==="
|
|
470
447
|
echo "Total skills across all directories: $TOTAL"
|
|
471
448
|
```
|
|
@@ -500,9 +477,8 @@ Ask user to provide either:
|
|
|
500
477
|
- **Paste content**: Paste skill markdown content directly
|
|
501
478
|
|
|
502
479
|
Then ask for scope:
|
|
503
|
-
- **User-level** (~/.
|
|
480
|
+
- **User-level** (~/.claude/skills/omc-learned/) - Available across all projects
|
|
504
481
|
- **Project-level** (.omc/skills/) - Only for this project
|
|
505
|
-
- **Builtin** (~/.claude/plugins/oh-my-claudecode/skills/) - Plugin-provided, read-only
|
|
506
482
|
|
|
507
483
|
Validate the skill format and save to the chosen location.
|
|
508
484
|
|
|
@@ -795,8 +771,7 @@ Good skills are:
|
|
|
795
771
|
> /oh-my-claudecode:skill list
|
|
796
772
|
|
|
797
773
|
Checking skill directories...
|
|
798
|
-
✓ User skills directory exists: ~/.
|
|
799
|
-
✓ Legacy user skills directory exists: ~/.claude/skills/omc-learned/
|
|
774
|
+
✓ User skills directory exists: ~/.claude/skills/omc-learned/
|
|
800
775
|
✓ Project skills directory exists: .omc/skills/
|
|
801
776
|
|
|
802
777
|
Scanning for skills...
|
|
@@ -821,14 +796,8 @@ Total skills: 5
|
|
|
821
796
|
Description: When to clear TypeScript build cache to fix phantom errors
|
|
822
797
|
Modified: 2026-01-21 11:28:37
|
|
823
798
|
|
|
824
|
-
=== BUILTIN SKILLS ===
|
|
825
|
-
Total skills: 37
|
|
826
|
-
- omc-setup
|
|
827
|
-
- code-review
|
|
828
|
-
- ultrawork
|
|
829
|
-
|
|
830
799
|
=== SUMMARY ===
|
|
831
|
-
Total skills:
|
|
800
|
+
Total skills: 8
|
|
832
801
|
|
|
833
802
|
What would you like to do?
|
|
834
803
|
1. Add new skill
|
|
@@ -845,7 +814,7 @@ What would you like to do?
|
|
|
845
814
|
- Run `/oh-my-claudecode:skill list` periodically to review your skill library
|
|
846
815
|
- After solving a tricky bug, immediately run learner to capture it
|
|
847
816
|
- Use project-level skills for codebase-specific knowledge
|
|
848
|
-
- Use user-level skills
|
|
817
|
+
- Use user-level skills for general patterns that apply everywhere
|
|
849
818
|
- Review and refine triggers over time to improve matching accuracy
|
|
850
819
|
|
|
851
820
|
---
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skillify
|
|
3
|
+
description: Turn a repeatable workflow from the current session into a reusable OMC skill draft
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skillify
|
|
7
|
+
|
|
8
|
+
Use this skill when the current session uncovered a repeatable workflow that should become a reusable OMC skill.
|
|
9
|
+
|
|
10
|
+
## Goal
|
|
11
|
+
Capture a successful multi-step workflow as a concrete skill draft instead of rediscovering it later.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
1. Identify the repeatable task the session accomplished.
|
|
15
|
+
2. Extract:
|
|
16
|
+
- inputs
|
|
17
|
+
- ordered steps
|
|
18
|
+
- success criteria
|
|
19
|
+
- constraints / pitfalls
|
|
20
|
+
- best target location for the skill
|
|
21
|
+
3. Decide whether the workflow belongs as:
|
|
22
|
+
- a repo built-in skill
|
|
23
|
+
- a user/project learned skill
|
|
24
|
+
- documentation only
|
|
25
|
+
4. When drafting a learned skill file, output a complete skill file that starts with YAML frontmatter.
|
|
26
|
+
- Never emit plain markdown-only skill files.
|
|
27
|
+
- Minimum frontmatter:
|
|
28
|
+
```yaml
|
|
29
|
+
---
|
|
30
|
+
name: <skill-name>
|
|
31
|
+
description: <one-line description>
|
|
32
|
+
triggers:
|
|
33
|
+
- <trigger-1>
|
|
34
|
+
- <trigger-2>
|
|
35
|
+
---
|
|
36
|
+
```
|
|
37
|
+
- Write learned/user/project skills to:
|
|
38
|
+
- `${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<skill-name>.md`
|
|
39
|
+
- `.omc/skills/<skill-name>.md`
|
|
40
|
+
5. Draft the rest of the skill file with clear triggers, steps, and success criteria.
|
|
41
|
+
6. Point out anything still too fuzzy to encode safely.
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
- Only capture workflows that are actually repeatable.
|
|
45
|
+
- Keep the skill practical and scoped.
|
|
46
|
+
- Prefer explicit success criteria over vague prose.
|
|
47
|
+
- If the workflow still has unresolved branching decisions, note them before drafting.
|
|
48
|
+
|
|
49
|
+
## Output
|
|
50
|
+
- Proposed skill name
|
|
51
|
+
- Target location
|
|
52
|
+
- Draft workflow structure
|
|
53
|
+
- Open questions, if any
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: team
|
|
3
3
|
description: N coordinated agents on shared task list using Claude Code native teams
|
|
4
|
+
argument-hint: "[N:agent-type] [ralph] <task description>"
|
|
4
5
|
aliases: []
|
|
5
6
|
level: 4
|
|
6
7
|
---
|
|
@@ -799,7 +800,7 @@ See Cancellation section below for details.
|
|
|
799
800
|
|
|
800
801
|
If the lead crashes mid-run, the team skill should detect existing state and resume:
|
|
801
802
|
|
|
802
|
-
1. Check
|
|
803
|
+
1. Check `${CLAUDE_CONFIG_DIR:-~/.claude}/teams/` for teams matching the task slug
|
|
803
804
|
2. If found, read `config.json` to discover active members
|
|
804
805
|
3. Resume monitor mode instead of creating a duplicate team
|
|
805
806
|
4. Call `TaskList` to determine current progress
|
|
@@ -871,26 +872,97 @@ When `OMC_TEAM_SCALING_ENABLED=1` is set, the team supports mid-session scaling:
|
|
|
871
872
|
|
|
872
873
|
## Configuration
|
|
873
874
|
|
|
874
|
-
Optional settings
|
|
875
|
+
Optional settings live in `.claude/omc.jsonc` (project) or `~/.config/claude-omc/config.jsonc` (user). Project values override user values; `OMC_TEAM_ROLE_OVERRIDES` (env JSON) supersedes both.
|
|
875
876
|
|
|
876
|
-
```
|
|
877
|
+
```jsonc
|
|
877
878
|
{
|
|
878
879
|
"team": {
|
|
879
|
-
"
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
880
|
+
"ops": {
|
|
881
|
+
"maxAgents": 20,
|
|
882
|
+
"defaultAgentType": "claude",
|
|
883
|
+
"monitorIntervalMs": 30000,
|
|
884
|
+
"shutdownTimeoutMs": 15000
|
|
885
|
+
}
|
|
883
886
|
}
|
|
884
887
|
}
|
|
885
888
|
```
|
|
886
889
|
|
|
887
|
-
- **maxAgents** - Maximum teammates (default: 20)
|
|
888
|
-
- **defaultAgentType** -
|
|
889
|
-
- **monitorIntervalMs** - How often to poll `TaskList` (default: 30s)
|
|
890
|
-
- **shutdownTimeoutMs** - How long to wait for shutdown responses (default: 15s)
|
|
890
|
+
- **ops.maxAgents** - Maximum teammates (default: 20)
|
|
891
|
+
- **ops.defaultAgentType** - CLI provider when a `/team` invocation does not specify one (`claude` | `codex` | `gemini`, default: `claude`)
|
|
892
|
+
- **ops.monitorIntervalMs** - How often to poll `TaskList` (default: 30s)
|
|
893
|
+
- **ops.shutdownTimeoutMs** - How long to wait for shutdown responses (default: 15s)
|
|
891
894
|
|
|
892
895
|
> **Note:** Team members do not have a hardcoded model default. Each teammate is a separate Claude Code session that inherits the user's configured model. Since teammates can spawn their own subagents, the session model acts as the orchestration layer while subagents can use any model tier.
|
|
893
896
|
|
|
897
|
+
## Per-Role Provider & Model Routing
|
|
898
|
+
|
|
899
|
+
> **Scope:** Applies to `/team` only. Task-based delegation uses `delegationRouting` (see separate docs). The two systems coexist by design.
|
|
900
|
+
|
|
901
|
+
Declare which provider (`claude`, `codex`, `gemini`) and which model tier should back each canonical role. Routing is resolved **once** at team creation and persisted in `TeamConfig.resolved_routing` — spawn, scale-up, and restart all read from the snapshot, so a role's worker CLI and model are stable for the lifetime of the team.
|
|
902
|
+
|
|
903
|
+
### Example — user target mapping
|
|
904
|
+
|
|
905
|
+
```jsonc
|
|
906
|
+
// .claude/omc.jsonc
|
|
907
|
+
{
|
|
908
|
+
"team": {
|
|
909
|
+
"roleRouting": {
|
|
910
|
+
"orchestrator": { "model": "inherit" },
|
|
911
|
+
"planner": { "provider": "claude", "model": "HIGH" },
|
|
912
|
+
"analyst": { "provider": "claude", "model": "HIGH" },
|
|
913
|
+
"executor": { "provider": "claude", "model": "MEDIUM" },
|
|
914
|
+
"critic": { "provider": "codex" },
|
|
915
|
+
"code-reviewer": { "provider": "gemini" },
|
|
916
|
+
"test-engineer": { "provider": "gemini", "model": "MEDIUM" }
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
```
|
|
921
|
+
|
|
922
|
+
| Role | Provider | Model |
|
|
923
|
+
|---|---|---|
|
|
924
|
+
| `orchestrator` | claude (pinned) | inherits invoking session |
|
|
925
|
+
| `planner` | claude | `HIGH` (opus) |
|
|
926
|
+
| `analyst` | claude | `HIGH` (opus) |
|
|
927
|
+
| `executor` | claude | `MEDIUM` (sonnet) |
|
|
928
|
+
| `critic` | codex | codex default |
|
|
929
|
+
| `code-reviewer` | gemini | gemini default |
|
|
930
|
+
| `test-engineer` | gemini | `MEDIUM` (sonnet) |
|
|
931
|
+
|
|
932
|
+
### Canonical roles
|
|
933
|
+
|
|
934
|
+
`orchestrator`, `planner`, `analyst`, `architect`, `executor`, `debugger`, `critic`, `code-reviewer`, `security-reviewer`, `test-engineer`, `designer`, `writer`, `code-simplifier`, `explore`, `document-specialist`.
|
|
935
|
+
|
|
936
|
+
User-friendly aliases normalize via `normalizeDelegationRole()` — e.g. `reviewer` → `code-reviewer`, `quality-reviewer` → `code-reviewer`, `harsh-critic` → `critic`, `build-fixer` → `debugger`. Accepted alias keys are honored during resolved snapshot creation and later stage routing, not just validation. Unknown roles fail validation at parse time.
|
|
937
|
+
|
|
938
|
+
### Spec fields (`TeamRoleAssignmentSpec`)
|
|
939
|
+
|
|
940
|
+
- **provider** — `"claude" | "codex" | "gemini"`. Omitted → defaults to `claude`.
|
|
941
|
+
- **model** — tier name (`"HIGH" | "MEDIUM" | "LOW"`) or an explicit model ID. Tiers resolve through `routing.tierModels`.
|
|
942
|
+
- **agent** — optional Claude agent name (e.g. `"critic"`, `"executor"`). Only honored when the resolved provider is `claude`.
|
|
943
|
+
|
|
944
|
+
`orchestrator` is pinned to `claude`; only `model` is user-configurable. Any other key on `orchestrator` is rejected by the validator.
|
|
945
|
+
|
|
946
|
+
### Env override
|
|
947
|
+
|
|
948
|
+
```bash
|
|
949
|
+
OMC_TEAM_ROLE_OVERRIDES='{"critic":{"provider":"codex"},"code-reviewer":{"provider":"gemini"}}'
|
|
950
|
+
```
|
|
951
|
+
|
|
952
|
+
Precedence: `OMC_TEAM_ROLE_OVERRIDES` > `.claude/omc.jsonc` (project) > `~/.config/claude-omc/config.jsonc` (user) > built-in defaults. Invalid JSON logs a warning and is ignored — env overrides are best-effort and never abort the run.
|
|
953
|
+
|
|
954
|
+
### Fallback when a CLI is missing
|
|
955
|
+
|
|
956
|
+
If the CLI for a configured provider is absent from `PATH` at spawn time, `buildLaunchArgs()` throws, the team lead emits a visible `SendMessage` warning, and the runtime falls back to a deterministic Claude assignment pre-computed by `buildResolvedRoutingSnapshot` (same tier + same agent, `provider: "claude"`). Fallback is loud by design — silent fallback is a test failure. Probe provider availability with `omc doctor --team-routing`.
|
|
957
|
+
|
|
958
|
+
### Stickiness — resolved once, reused everywhere
|
|
959
|
+
|
|
960
|
+
Resolved routing is immutable per team. Editing config mid-team-lifetime does not affect running teams; a new `/team` invocation picks up the new mapping. This guarantees that spawn, scale-up, and worker-restart all see identical routing, including across worktree detaches (the snapshot travels with `TeamConfig`).
|
|
961
|
+
|
|
962
|
+
### Zero-config behavior
|
|
963
|
+
|
|
964
|
+
An empty `team.roleRouting` preserves pre-patch behavior: every worker is Claude, model tiers follow `routing.tierModels`, and `/team 3:executor ...` still spawns three Claude Sonnet executors.
|
|
965
|
+
|
|
894
966
|
## State Cleanup
|
|
895
967
|
|
|
896
968
|
On successful completion:
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verify
|
|
3
|
+
description: Verify that a change really works before you claim completion
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verify
|
|
7
|
+
|
|
8
|
+
Use this skill when the user wants confidence that a feature, fix, or refactor actually works.
|
|
9
|
+
|
|
10
|
+
## Goal
|
|
11
|
+
Turn vague “it should work” claims into concrete evidence.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
1. Identify the exact behavior that must be proven.
|
|
15
|
+
2. Prefer existing tests first.
|
|
16
|
+
3. If coverage is missing, run the narrowest direct verification commands available.
|
|
17
|
+
4. If direct automation is not enough, describe the manual validation steps and gather concrete observable evidence.
|
|
18
|
+
5. Report only what was actually verified.
|
|
19
|
+
|
|
20
|
+
## Verification order
|
|
21
|
+
1. Existing tests
|
|
22
|
+
2. Typecheck / build
|
|
23
|
+
3. Narrow direct command checks
|
|
24
|
+
4. Manual or interactive validation
|
|
25
|
+
|
|
26
|
+
## Rules
|
|
27
|
+
- Do not say a change is complete without evidence.
|
|
28
|
+
- If a check fails, include the failure clearly.
|
|
29
|
+
- If no realistic verification path exists, say that explicitly instead of bluffing.
|
|
30
|
+
- Prefer concise evidence summaries over noisy logs.
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
- What was verified
|
|
34
|
+
- Which commands/tests were run
|
|
35
|
+
- What passed
|
|
36
|
+
- What failed or remains unverified
|
|
37
|
+
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wiki
|
|
3
|
+
description: LLM Wiki — persistent markdown knowledge base that compounds across sessions (Karpathy model)
|
|
4
|
+
triggers: ["wiki", "wiki this", "wiki add", "wiki lint", "wiki query"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Wiki
|
|
8
|
+
|
|
9
|
+
Persistent, self-maintained markdown knowledge base for project and session knowledge. Inspired by Karpathy's LLM Wiki concept.
|
|
10
|
+
|
|
11
|
+
## Operations
|
|
12
|
+
|
|
13
|
+
### Ingest
|
|
14
|
+
Process knowledge into wiki pages. A single ingest can touch multiple pages.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
wiki_ingest({ title: "Auth Architecture", content: "...", tags: ["auth", "architecture"], category: "architecture" })
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Query
|
|
21
|
+
Search across all wiki pages by keywords and tags. Returns matching pages with snippets — YOU (the LLM) synthesize answers with citations from the results.
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
wiki_query({ query: "authentication", tags: ["auth"], category: "architecture" })
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Lint
|
|
28
|
+
Run health checks on the wiki. Detects orphan pages, stale content, broken cross-references, oversized pages, and structural contradictions.
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
wiki_lint()
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Quick Add
|
|
35
|
+
Add a single page quickly (simpler than ingest).
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
wiki_add({ title: "Page Title", content: "...", tags: ["tag1"], category: "decision" })
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### List / Read / Delete
|
|
42
|
+
```
|
|
43
|
+
wiki_list() # Show all pages (reads index.md)
|
|
44
|
+
wiki_read({ page: "auth-architecture" }) # Read specific page
|
|
45
|
+
wiki_delete({ page: "outdated-page" }) # Delete a page
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Log
|
|
49
|
+
View wiki operation history by reading `.omc/wiki/log.md`.
|
|
50
|
+
|
|
51
|
+
## Categories
|
|
52
|
+
Pages are organized by category: `architecture`, `decision`, `pattern`, `debugging`, `environment`, `session-log`
|
|
53
|
+
|
|
54
|
+
## Storage
|
|
55
|
+
- Pages: `.omc/wiki/*.md` (markdown with YAML frontmatter)
|
|
56
|
+
- Index: `.omc/wiki/index.md` (auto-maintained catalog)
|
|
57
|
+
- Log: `.omc/wiki/log.md` (append-only operation chronicle)
|
|
58
|
+
|
|
59
|
+
## Cross-References
|
|
60
|
+
Use `[[page-name]]` wiki-link syntax to create cross-references between pages.
|
|
61
|
+
|
|
62
|
+
## Auto-Capture
|
|
63
|
+
At session end, significant discoveries are automatically captured as session-log pages. Configure via `wiki.autoCapture` in `.omc-config.json` (default: enabled).
|
|
64
|
+
|
|
65
|
+
## Hard Constraints
|
|
66
|
+
- NO vector embeddings — query uses keyword + tag matching only
|
|
67
|
+
- Wiki pages are git-ignored by default (`.omc/wiki/` is project-local)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudecode-omc",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.5.0",
|
|
4
4
|
"description": "Claude Code harness — best-practice skills, agents, hooks, and configs from multiple sources",
|
|
5
5
|
"bin": {
|
|
6
6
|
"omc-manage": "bin/omc-manage.js"
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
"scripts": {
|
|
18
18
|
"setup": "node bin/omc-manage.js setup",
|
|
19
19
|
"doctor": "node bin/omc-manage.js doctor",
|
|
20
|
+
"guidelines:optimize": "node bin/omc-manage.js guidelines optimize",
|
|
21
|
+
"guidelines:apply": "node bin/omc-manage.js guidelines apply",
|
|
20
22
|
"source:list": "node bin/omc-manage.js source list",
|
|
21
23
|
"source:sync": "node bin/omc-manage.js source sync",
|
|
22
24
|
"source:status": "node bin/omc-manage.js source status",
|