oh-my-customcode 0.12.4 → 0.13.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.
- package/README.md +1 -0
- package/dist/index.js +0 -16
- package/package.json +1 -1
- package/templates/.claude/agents/arch-documenter.md +0 -1
- package/templates/.claude/agents/arch-speckit-agent.md +0 -1
- package/templates/.claude/agents/be-express-expert.md +0 -1
- package/templates/.claude/agents/be-nestjs-expert.md +0 -1
- package/templates/.claude/agents/db-supabase-expert.md +2 -2
- package/templates/.claude/agents/fe-svelte-agent.md +0 -1
- package/templates/.claude/agents/fe-vuejs-agent.md +0 -1
- package/templates/.claude/agents/lang-java21-expert.md +0 -1
- package/templates/.claude/agents/mgr-creator.md +15 -0
- package/templates/.claude/agents/mgr-gitnerd.md +0 -1
- package/templates/.claude/agents/qa-engineer.md +0 -1
- package/templates/.claude/agents/qa-planner.md +0 -1
- package/templates/.claude/agents/qa-writer.md +0 -1
- package/templates/.claude/agents/sys-naggy.md +0 -1
- package/templates/.claude/agents/tool-bun-expert.md +0 -1
- package/templates/.claude/rules/MUST-continuous-improvement.md +1 -1
- package/templates/.claude/rules/MUST-intent-transparency.md +1 -1
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +79 -3
- package/templates/.claude/rules/MUST-sync-verification.md +1 -1
- package/templates/.claude/rules/SHOULD-agent-teams.md +82 -14
- package/templates/.claude/rules/index.yaml +4 -4
- package/templates/.claude/skills/codex-exec/SKILL.md +27 -1
- package/templates/.claude/skills/create-agent/SKILL.md +1 -0
- package/templates/.claude/skills/de-lead-routing/SKILL.md +23 -0
- package/templates/.claude/skills/dev-lead-routing/SKILL.md +23 -0
- package/templates/.claude/skills/intent-detection/SKILL.md +16 -1
- package/templates/.claude/skills/qa-lead-routing/SKILL.md +22 -0
- package/templates/.claude/skills/secretary-routing/SKILL.md +20 -0
- package/templates/CLAUDE.md.en +24 -9
- package/templates/CLAUDE.md.ko +24 -9
- package/templates/manifest.json +2 -2
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ Like oh-my-zsh transformed shell customization, oh-my-customcode makes personali
|
|
|
26
26
|
| **Dead Simple Customization** | Create a folder + markdown file = new agent or skill |
|
|
27
27
|
| **Mix and Match** | Use built-in components, create your own, or combine both |
|
|
28
28
|
| **Non-Destructive** | Your customizations live alongside defaults, never overwritten |
|
|
29
|
+
| **Dynamic Agent Creation** | No matching expert? The system creates one on-the-fly, connecting relevant skills and guides |
|
|
29
30
|
|
|
30
31
|
## Quick Start
|
|
31
32
|
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __toESM = (mod, isNodeMode, target) => {
|
|
8
|
-
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
9
|
-
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
10
|
-
for (let key of __getOwnPropNames(mod))
|
|
11
|
-
if (!__hasOwnProp.call(to, key))
|
|
12
|
-
__defProp(to, key, {
|
|
13
|
-
get: () => mod[key],
|
|
14
|
-
enumerable: true
|
|
15
|
-
});
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
2
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
19
3
|
|
|
20
4
|
// src/core/config.ts
|
package/package.json
CHANGED
|
@@ -4,6 +4,8 @@ description: Supabase and PostgreSQL expert. Use when working with Supabase proj
|
|
|
4
4
|
model: sonnet
|
|
5
5
|
memory: user
|
|
6
6
|
effort: high
|
|
7
|
+
skills:
|
|
8
|
+
- supabase-postgres-best-practices
|
|
7
9
|
tools:
|
|
8
10
|
- Read
|
|
9
11
|
- Write
|
|
@@ -11,8 +13,6 @@ tools:
|
|
|
11
13
|
- Grep
|
|
12
14
|
- Glob
|
|
13
15
|
- Bash
|
|
14
|
-
skills:
|
|
15
|
-
- supabase-postgres-best-practices
|
|
16
16
|
---
|
|
17
17
|
|
|
18
18
|
You are an expert in Supabase and PostgreSQL for performant, secure database-driven applications.
|
|
@@ -37,3 +37,18 @@ No registry update needed - agents auto-discovered from `.claude/agents/*.md`.
|
|
|
37
37
|
|
|
38
38
|
- R000: All files in English
|
|
39
39
|
- R006: Agent file = role/capabilities only; skills = instructions; guides = reference docs
|
|
40
|
+
|
|
41
|
+
## Dynamic Creation Mode
|
|
42
|
+
|
|
43
|
+
When invoked as routing fallback (not explicit `/create-agent`):
|
|
44
|
+
|
|
45
|
+
1. Receive context: detected domain, keywords, file patterns
|
|
46
|
+
2. Auto-discover: scan `.claude/skills/` for matching skills
|
|
47
|
+
3. Auto-connect: scan `guides/` for relevant reference docs
|
|
48
|
+
4. Create minimal viable agent with:
|
|
49
|
+
- Detected skills and relevant guides
|
|
50
|
+
- `sonnet` model (default)
|
|
51
|
+
- `project` memory scope
|
|
52
|
+
5. Agent is persisted (not ephemeral) for future reuse
|
|
53
|
+
|
|
54
|
+
Dynamic mode skips user confirmation and creates the agent immediately to fulfill the pending task.
|
|
@@ -6,17 +6,74 @@
|
|
|
6
6
|
|
|
7
7
|
The main conversation is the **sole orchestrator**. It uses routing skills to delegate tasks to subagents via the Task tool. Subagents CANNOT spawn other subagents.
|
|
8
8
|
|
|
9
|
+
**The orchestrator MUST NEVER directly write, edit, or create files. ALL file modifications MUST be delegated to appropriate subagents.**
|
|
10
|
+
|
|
11
|
+
## Self-Check (Mandatory Before File Modification)
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
╔══════════════════════════════════════════════════════════════════╗
|
|
15
|
+
║ BEFORE MODIFYING ANY FILE, ASK YOURSELF: ║
|
|
16
|
+
║ ║
|
|
17
|
+
║ 1. Am I the orchestrator (main conversation)? ║
|
|
18
|
+
║ YES → I MUST NOT write/edit files directly ║
|
|
19
|
+
║ NO → I am a subagent, proceed with task ║
|
|
20
|
+
║ ║
|
|
21
|
+
║ 2. Have I identified the correct specialized agent? ║
|
|
22
|
+
║ YES → Delegate via Task tool ║
|
|
23
|
+
║ NO → Check delegation table below ║
|
|
24
|
+
║ ║
|
|
25
|
+
║ 3. Am I about to use Write/Edit tool from orchestrator? ║
|
|
26
|
+
║ YES → STOP. This is a VIOLATION. Delegate instead. ║
|
|
27
|
+
║ NO → Good. Continue. ║
|
|
28
|
+
║ ║
|
|
29
|
+
║ If ANY answer is wrong → DO NOT PROCEED ║
|
|
30
|
+
╚══════════════════════════════════════════════════════════════════╝
|
|
31
|
+
```
|
|
32
|
+
|
|
9
33
|
## Architecture
|
|
10
34
|
|
|
11
35
|
```
|
|
12
36
|
Main Conversation (orchestrator)
|
|
13
37
|
├─ secretary-routing → mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, sys-memory-keeper
|
|
14
38
|
├─ dev-lead-routing → lang-*/be-*/fe-* experts
|
|
39
|
+
├─ de-lead-routing → de-* experts
|
|
15
40
|
└─ qa-lead-routing → qa-planner, qa-writer, qa-engineer
|
|
16
41
|
↓
|
|
17
42
|
Task tool spawns subagents (flat, no hierarchy)
|
|
18
43
|
```
|
|
19
44
|
|
|
45
|
+
## Common Violations
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
❌ WRONG: Orchestrator writes files directly
|
|
49
|
+
Main conversation → Write("src/main.go", content)
|
|
50
|
+
Main conversation → Edit("package.json", old, new)
|
|
51
|
+
|
|
52
|
+
✓ CORRECT: Orchestrator delegates to specialist
|
|
53
|
+
Main conversation → Task(lang-golang-expert) → Write("src/main.go", content)
|
|
54
|
+
Main conversation → Task(tool-npm-expert) → Edit("package.json", old, new)
|
|
55
|
+
|
|
56
|
+
❌ WRONG: Orchestrator runs git commands directly
|
|
57
|
+
Main conversation → Bash("git commit -m 'fix'")
|
|
58
|
+
Main conversation → Bash("git push origin main")
|
|
59
|
+
|
|
60
|
+
✓ CORRECT: Orchestrator delegates to mgr-gitnerd
|
|
61
|
+
Main conversation → Task(mgr-gitnerd) → git commit
|
|
62
|
+
Main conversation → Task(mgr-gitnerd) → git push
|
|
63
|
+
|
|
64
|
+
❌ WRONG: Using general-purpose when specialist exists
|
|
65
|
+
Main conversation → Task(general-purpose) → "Write Go code"
|
|
66
|
+
|
|
67
|
+
✓ CORRECT: Using the right specialist
|
|
68
|
+
Main conversation → Task(lang-golang-expert) → "Write Go code"
|
|
69
|
+
|
|
70
|
+
❌ WRONG: Orchestrator creates files "just this once"
|
|
71
|
+
"It's just a small config file, I'll write it directly..."
|
|
72
|
+
|
|
73
|
+
✓ CORRECT: Always delegate, no matter how small
|
|
74
|
+
Task(appropriate-agent) → create config file
|
|
75
|
+
```
|
|
76
|
+
|
|
20
77
|
## Session Continuity
|
|
21
78
|
|
|
22
79
|
After restart/compaction: re-read CLAUDE.md, all delegation rules still apply. Never write code directly from orchestrator.
|
|
@@ -40,11 +97,13 @@ After restart/compaction: re-read CLAUDE.md, all delegation rules still apply. N
|
|
|
40
97
|
| Docker/Infra | infra-docker-expert |
|
|
41
98
|
| AWS | infra-aws-expert |
|
|
42
99
|
| Database schema | db-supabase-expert |
|
|
100
|
+
| Unmatched specialized task | mgr-creator → dynamic agent creation |
|
|
43
101
|
|
|
44
102
|
**Rules:**
|
|
45
103
|
- All file modifications MUST be delegated (orchestrator only uses Read/Glob/Grep)
|
|
46
104
|
- Use specialized agents, not general-purpose, when one exists
|
|
47
105
|
- general-purpose only for truly generic tasks (file moves, simple scripts)
|
|
106
|
+
- NO EXCEPTIONS for "small" or "quick" changes
|
|
48
107
|
|
|
49
108
|
### System Agents Reference
|
|
50
109
|
|
|
@@ -56,11 +115,28 @@ After restart/compaction: re-read CLAUDE.md, all delegation rules still apply. N
|
|
|
56
115
|
## Exception: Simple Tasks
|
|
57
116
|
|
|
58
117
|
Subagent NOT required for:
|
|
59
|
-
- Reading files for analysis
|
|
118
|
+
- Reading files for analysis (Read, Glob, Grep only)
|
|
60
119
|
- Simple file searches
|
|
61
120
|
- Direct questions answered by main conversation
|
|
62
121
|
|
|
63
|
-
|
|
122
|
+
**IMPORTANT:** "Simple" means READ-ONLY operations. If the task involves ANY file creation, modification, or deletion, it MUST be delegated. There is no "too small to delegate" exception for write operations.
|
|
123
|
+
|
|
124
|
+
## Dynamic Agent Creation (No-Match Fallback)
|
|
125
|
+
|
|
126
|
+
When routing detects no matching agent for a specialized task:
|
|
127
|
+
|
|
128
|
+
1. **Evaluate**: Is this a specialized task requiring domain expertise?
|
|
129
|
+
- YES → proceed to step 2
|
|
130
|
+
- NO → use general-purpose agent
|
|
131
|
+
2. **Delegate**: Orchestrator delegates to `mgr-creator` with context:
|
|
132
|
+
- Detected domain keywords
|
|
133
|
+
- File patterns found
|
|
134
|
+
- Required capabilities
|
|
135
|
+
3. **Create**: `mgr-creator` auto-discovers relevant skills/guides, creates agent
|
|
136
|
+
4. **Execute**: Orchestrator uses newly created agent for the original task
|
|
137
|
+
|
|
138
|
+
This is the core oh-my-customcode philosophy:
|
|
139
|
+
> "No expert? CREATE one, connect knowledge, and USE it."
|
|
64
140
|
|
|
65
141
|
## Model Selection
|
|
66
142
|
|
|
@@ -117,7 +193,7 @@ The skill's WORKFLOW is followed, but git EXECUTION is delegated to mgr-gitnerd
|
|
|
117
193
|
|
|
118
194
|
## Agent Teams (when enabled)
|
|
119
195
|
|
|
120
|
-
When `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`:
|
|
196
|
+
When `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`: prefer Agent Teams for 2+ agent coordinated tasks requiring shared state or inter-agent communication. See R018 for the decision matrix. Task tool remains fallback for simple/independent tasks.
|
|
121
197
|
|
|
122
198
|
## Announcement Format
|
|
123
199
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# [SHOULD] Agent Teams Rules
|
|
2
2
|
|
|
3
|
-
> **Priority**: SHOULD | **ID**:
|
|
3
|
+
> **Priority**: SHOULD | **ID**: R018 | **Condition**: Agent Teams enabled locally
|
|
4
4
|
|
|
5
5
|
## Detection
|
|
6
6
|
|
|
@@ -8,32 +8,100 @@ Available when `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessag
|
|
|
8
8
|
|
|
9
9
|
## Decision Matrix
|
|
10
10
|
|
|
11
|
-
| Scenario | Preferred |
|
|
12
|
-
|
|
13
|
-
| Simple independent subtasks | Task Tool |
|
|
14
|
-
| Multi-step with shared state | Agent Teams |
|
|
15
|
-
| Research requiring discussion | Agent Teams |
|
|
16
|
-
| Cost-sensitive batch ops | Task Tool |
|
|
17
|
-
| Complex debugging across modules | Agent Teams |
|
|
18
|
-
| Code review + fix cycle | Agent Teams |
|
|
19
|
-
| Single file operations | Task Tool |
|
|
11
|
+
| Scenario | Preferred | Reason |
|
|
12
|
+
|----------|-----------|--------|
|
|
13
|
+
| Simple independent subtasks | Task Tool | Lower cost, no coordination overhead |
|
|
14
|
+
| Multi-step with shared state | **Agent Teams** | Shared task list, peer messaging |
|
|
15
|
+
| Research requiring discussion | **Agent Teams** | Iterative discovery, synthesis |
|
|
16
|
+
| Cost-sensitive batch ops | Task Tool | Minimal token overhead |
|
|
17
|
+
| Complex debugging across modules | **Agent Teams** | Cross-module state sharing |
|
|
18
|
+
| Code review + fix cycle | **Agent Teams** | Review → fix → re-review loop |
|
|
19
|
+
| Single file operations | Task Tool | Overkill for simple tasks |
|
|
20
|
+
| Dynamic agent creation + usage | **Agent Teams** | Create → test → iterate cycle |
|
|
20
21
|
|
|
21
|
-
**
|
|
22
|
+
**ACTIVELY prefer Agent Teams for qualifying tasks.** The coordination richness justifies the token cost for complex work.
|
|
23
|
+
|
|
24
|
+
## Self-Check (Mandatory Before Task Tool)
|
|
25
|
+
|
|
26
|
+
BEFORE using Task tool for 2+ agent tasks, CHECK:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
╔════════════════════════════════════════════════════════╗
|
|
30
|
+
║ AGENT TEAMS CHECK: ║
|
|
31
|
+
║ ║
|
|
32
|
+
║ 1. Is Agent Teams available? ║
|
|
33
|
+
║ 2. Does task need 3+ agents? ║
|
|
34
|
+
║ 3. Do agents need shared state? ║
|
|
35
|
+
║ 4. Is inter-agent communication needed? ║
|
|
36
|
+
║ 5. Is there a review/fix/iterate cycle? ║
|
|
37
|
+
║ ║
|
|
38
|
+
║ If YES to #1 AND any of #2-#5 → USE Agent Teams ║
|
|
39
|
+
╚════════════════════════════════════════════════════════╝
|
|
40
|
+
```
|
|
22
41
|
|
|
23
42
|
## Team Patterns
|
|
24
43
|
|
|
44
|
+
### Standard Patterns
|
|
45
|
+
|
|
25
46
|
- **Research**: researcher-1 + researcher-2 + synthesizer
|
|
26
47
|
- **Development**: implementer + reviewer + tester
|
|
27
48
|
- **Debug**: investigator-1 + investigator-2 + fixer
|
|
28
49
|
|
|
50
|
+
### Hybrid Patterns
|
|
51
|
+
|
|
52
|
+
- **Review+Fix**: reviewer + implementer (reviewer finds issues → implementer fixes → reviewer re-checks)
|
|
53
|
+
- **Create+Validate**: mgr-creator + qa-engineer (create agent → validate → iterate)
|
|
54
|
+
- **Multi-Expert**: expert-1 + expert-2 + coordinator (cross-domain tasks requiring multiple specialties)
|
|
55
|
+
|
|
56
|
+
### Dynamic Patterns
|
|
57
|
+
|
|
58
|
+
- **Dynamic Creation**: mgr-creator + domain-expert (create new agent → immediately use for pending task)
|
|
59
|
+
- **Codex Hybrid**: codex-exec-agent + claude-reviewer (Codex generates → Claude reviews/refines)
|
|
60
|
+
|
|
61
|
+
## Codex-Exec Integration
|
|
62
|
+
|
|
63
|
+
When both Agent Teams and codex-exec are available:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Hybrid Workflow:
|
|
67
|
+
1. Claude agent analyzes requirements
|
|
68
|
+
2. codex-exec generates implementation (Codex strength: code generation)
|
|
69
|
+
3. Claude agent reviews and refines (Claude strength: reasoning, quality)
|
|
70
|
+
4. Iterate via team messaging until quality meets standards
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
| Step | Agent | Model |
|
|
74
|
+
|------|-------|-------|
|
|
75
|
+
| Analysis | Claude team member | sonnet/opus |
|
|
76
|
+
| Generation | codex-exec | o3/o4-mini |
|
|
77
|
+
| Review | Claude team member | sonnet |
|
|
78
|
+
| Refinement | Appropriate expert | sonnet |
|
|
79
|
+
|
|
80
|
+
## Dynamic Agent Creation in Teams
|
|
81
|
+
|
|
82
|
+
When Agent Teams creates a new agent via mgr-creator:
|
|
83
|
+
|
|
84
|
+
1. Team lead identifies missing expertise
|
|
85
|
+
2. Spawns mgr-creator as team member
|
|
86
|
+
3. mgr-creator creates agent with auto-discovered skills
|
|
87
|
+
4. New agent joins team immediately
|
|
88
|
+
5. Team continues with expanded capabilities
|
|
89
|
+
|
|
29
90
|
## Lifecycle
|
|
30
91
|
|
|
31
|
-
|
|
92
|
+
```
|
|
93
|
+
TeamCreate → TaskCreate → Task(spawn members) → SendMessage(coordinate)
|
|
94
|
+
→ TaskUpdate(progress) → ... → shutdown members → TeamDelete
|
|
95
|
+
```
|
|
32
96
|
|
|
33
97
|
## Fallback
|
|
34
98
|
|
|
35
99
|
When Agent Teams unavailable: use Task tool with R009/R010 rules. Both approaches produce results; Agent Teams adds coordination richness.
|
|
36
100
|
|
|
37
|
-
## Cost
|
|
101
|
+
## Cost Awareness
|
|
38
102
|
|
|
39
|
-
Agent Teams uses more tokens (full context per member + message passing). Use Task tool
|
|
103
|
+
Agent Teams uses more tokens (full context per member + message passing). Use Task tool when:
|
|
104
|
+
- Task takes < 3 minutes
|
|
105
|
+
- No inter-agent communication needed
|
|
106
|
+
- Simple independent subtasks only
|
|
107
|
+
- Cost is the primary concern
|
|
@@ -62,7 +62,7 @@ rules:
|
|
|
62
62
|
scope: agents
|
|
63
63
|
|
|
64
64
|
# Intent Transparency - MUST
|
|
65
|
-
- id:
|
|
65
|
+
- id: R015
|
|
66
66
|
name: intent-transparency
|
|
67
67
|
title: Intent Transparency Rules
|
|
68
68
|
path: ./MUST-intent-transparency.md
|
|
@@ -70,7 +70,7 @@ rules:
|
|
|
70
70
|
scope: orchestrator
|
|
71
71
|
|
|
72
72
|
# Continuous Improvement - MUST
|
|
73
|
-
- id:
|
|
73
|
+
- id: R016
|
|
74
74
|
name: continuous-improvement
|
|
75
75
|
title: Continuous Improvement Rules
|
|
76
76
|
path: ./MUST-continuous-improvement.md
|
|
@@ -78,7 +78,7 @@ rules:
|
|
|
78
78
|
scope: all
|
|
79
79
|
|
|
80
80
|
# Sync Verification - MUST
|
|
81
|
-
- id:
|
|
81
|
+
- id: R017
|
|
82
82
|
name: sync-verification
|
|
83
83
|
title: Sync Verification Rules
|
|
84
84
|
path: ./MUST-sync-verification.md
|
|
@@ -125,7 +125,7 @@ rules:
|
|
|
125
125
|
scope: all
|
|
126
126
|
|
|
127
127
|
# Agent Teams - SHOULD
|
|
128
|
-
- id:
|
|
128
|
+
- id: R018
|
|
129
129
|
name: agent-teams
|
|
130
130
|
title: Agent Teams Rules
|
|
131
131
|
path: ./SHOULD-agent-teams.md
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: codex-exec
|
|
3
3
|
description: Execute OpenAI Codex CLI prompts and return results
|
|
4
4
|
argument-hint: "<prompt> [--json] [--output <path>] [--model <name>] [--timeout <ms>]"
|
|
5
|
-
disable-model-invocation: true
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# Codex Exec Skill
|
|
@@ -121,3 +120,30 @@ Works with the orchestrator pattern:
|
|
|
121
120
|
- Main conversation delegates Codex execution via this skill
|
|
122
121
|
- Results are returned to the main conversation for further processing
|
|
123
122
|
- Can be chained with other skills (e.g., dev-review after Codex generates code)
|
|
123
|
+
|
|
124
|
+
## Availability Check
|
|
125
|
+
|
|
126
|
+
codex-exec requires the Codex CLI binary to be installed and authenticated. The skill is only usable when:
|
|
127
|
+
|
|
128
|
+
1. `codex` binary is found in PATH (`which codex` succeeds)
|
|
129
|
+
2. Authentication is valid (OPENAI_API_KEY set or `codex` logged in)
|
|
130
|
+
|
|
131
|
+
If either check fails, this skill cannot be used. Fall back to Claude agents for the task.
|
|
132
|
+
|
|
133
|
+
> **Note**: `disable-model-invocation: true` is set intentionally. This skill must be explicitly invoked via `/codex-exec` or delegated by the orchestrator. It is NOT auto-invoked by the model.
|
|
134
|
+
|
|
135
|
+
## Agent Teams Integration
|
|
136
|
+
|
|
137
|
+
When used within Agent Teams (requires explicit invocation):
|
|
138
|
+
|
|
139
|
+
1. **As delegated task**: orchestrator explicitly delegates codex-exec for code generation
|
|
140
|
+
2. **Hybrid workflow**: Claude team member analyzes → orchestrator invokes codex-exec → Claude reviews
|
|
141
|
+
3. **Iteration**: Team messaging enables review-fix cycles between Claude and Codex outputs
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
Orchestrator delegates generation task
|
|
145
|
+
→ /codex-exec invoked explicitly
|
|
146
|
+
→ Output returned to orchestrator
|
|
147
|
+
→ Reviewer validates quality
|
|
148
|
+
→ Iterate if needed
|
|
149
|
+
```
|
|
@@ -23,6 +23,7 @@ Create a new agent with complete directory structure, files, and registration.
|
|
|
23
23
|
--source, -s External source URL (for external agents)
|
|
24
24
|
--desc, -d Description
|
|
25
25
|
--skills Comma-separated skills to include
|
|
26
|
+
--dynamic Auto-discover skills and guides from context (used by routing fallback)
|
|
26
27
|
```
|
|
27
28
|
|
|
28
29
|
## Workflow
|
|
@@ -219,6 +219,29 @@ Pipeline design completed.
|
|
|
219
219
|
- **secretary-routing**: DE agents accessible through secretary for management tasks
|
|
220
220
|
- **qa-lead-routing**: Coordinates with QA for data quality testing
|
|
221
221
|
|
|
222
|
+
## No Match Fallback
|
|
223
|
+
|
|
224
|
+
When a data engineering tool is detected but no matching agent exists:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
User Input → No matching DE agent
|
|
228
|
+
↓
|
|
229
|
+
Detect: DE tool keyword or config file pattern
|
|
230
|
+
↓
|
|
231
|
+
Delegate to mgr-creator with context:
|
|
232
|
+
domain: detected DE tool
|
|
233
|
+
type: de-engineer
|
|
234
|
+
keywords: extracted tool names
|
|
235
|
+
file_patterns: detected config patterns
|
|
236
|
+
skills: auto-discover from .claude/skills/
|
|
237
|
+
guides: auto-discover from guides/
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**Examples of dynamic creation triggers:**
|
|
241
|
+
- New data tools (e.g., "Dagster DAG 만들어줘", "Flink 스트리밍 설정해줘")
|
|
242
|
+
- Unfamiliar data formats or connectors
|
|
243
|
+
- Data tool detected in project but no specialist agent
|
|
244
|
+
|
|
222
245
|
## Agent Teams Awareness
|
|
223
246
|
|
|
224
247
|
Before routing via Task tool, check if Agent Teams is available (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessage tools present).
|
|
@@ -77,6 +77,29 @@ user-invocable: false
|
|
|
77
77
|
|
|
78
78
|
Multi-language: detect all languages, route to parallel experts (max 4). Single-language: route to matching expert. Cross-layer (frontend + backend): multiple experts in parallel.
|
|
79
79
|
|
|
80
|
+
## No Match Fallback
|
|
81
|
+
|
|
82
|
+
When file extension or keyword doesn't match any existing agent:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
User Input → No matching development agent
|
|
86
|
+
↓
|
|
87
|
+
Detect: File extension (.rb, .swift, .dart, etc.) or language keyword
|
|
88
|
+
↓
|
|
89
|
+
Delegate to mgr-creator with context:
|
|
90
|
+
domain: detected language/framework
|
|
91
|
+
type: sw-engineer
|
|
92
|
+
keywords: extracted from user input
|
|
93
|
+
file_patterns: detected extensions
|
|
94
|
+
skills: auto-discover from .claude/skills/
|
|
95
|
+
guides: auto-discover from guides/
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Examples of dynamic creation triggers:**
|
|
99
|
+
- Unrecognized file extension (e.g., `.rb` → Ruby expert, `.swift` → Swift expert)
|
|
100
|
+
- New framework keyword (e.g., "Flutter 앱 리뷰해줘", "Rails API 만들어줘")
|
|
101
|
+
- Language detected but no specialist exists
|
|
102
|
+
|
|
80
103
|
## Agent Teams Awareness
|
|
81
104
|
|
|
82
105
|
Before routing via Task tool, check if Agent Teams is available (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessage tools present).
|
|
@@ -176,8 +176,9 @@ Each agent defines:
|
|
|
176
176
|
|
|
177
177
|
## Error Handling
|
|
178
178
|
|
|
179
|
-
### No Match
|
|
179
|
+
### No Match (< 30% confidence)
|
|
180
180
|
|
|
181
|
+
**Generic task** (no identifiable domain):
|
|
181
182
|
```
|
|
182
183
|
[Intent Unclear]
|
|
183
184
|
├── Input: "도와줘"
|
|
@@ -190,6 +191,20 @@ How can I help? Please be more specific:
|
|
|
190
191
|
- What file or project?
|
|
191
192
|
```
|
|
192
193
|
|
|
194
|
+
**Specialized task with identifiable domain** (keywords/files detected but no matching agent):
|
|
195
|
+
```
|
|
196
|
+
[No Matching Agent]
|
|
197
|
+
├── Input: "Terraform 모듈 리뷰해줘"
|
|
198
|
+
├── Domain: terraform (detected from keywords)
|
|
199
|
+
├── Matching Agent: none
|
|
200
|
+
└── Action: Trigger dynamic agent creation
|
|
201
|
+
|
|
202
|
+
→ Delegating to mgr-creator with context:
|
|
203
|
+
domain: terraform
|
|
204
|
+
keywords: ["terraform", "모듈"]
|
|
205
|
+
file_patterns: ["*.tf"]
|
|
206
|
+
```
|
|
207
|
+
|
|
193
208
|
### Ambiguous Match
|
|
194
209
|
|
|
195
210
|
```
|
|
@@ -265,6 +265,28 @@ metrics:
|
|
|
265
265
|
test_case_count: number
|
|
266
266
|
```
|
|
267
267
|
|
|
268
|
+
## No Match Fallback
|
|
269
|
+
|
|
270
|
+
When a QA task involves unfamiliar testing patterns or tools:
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
User Input → QA task with unrecognized tool/pattern
|
|
274
|
+
↓
|
|
275
|
+
Detect: Testing framework or QA methodology keyword
|
|
276
|
+
↓
|
|
277
|
+
Delegate to mgr-creator with context:
|
|
278
|
+
domain: detected QA tool/methodology
|
|
279
|
+
type: qa-engineer
|
|
280
|
+
keywords: extracted testing terms
|
|
281
|
+
skills: auto-discover from .claude/skills/
|
|
282
|
+
guides: auto-discover from guides/
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Examples of dynamic creation triggers:**
|
|
286
|
+
- New testing frameworks (e.g., "Cypress E2E 테스트 작성해줘", "k6 부하 테스트 설계해줘")
|
|
287
|
+
- Specialized QA methodologies (e.g., "뮤테이션 테스트 전략 만들어줘")
|
|
288
|
+
- Performance/security testing tools not covered by existing agents
|
|
289
|
+
|
|
268
290
|
## Agent Teams Awareness
|
|
269
291
|
|
|
270
292
|
Before routing via Task tool, check if Agent Teams is available (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessage tools present).
|
|
@@ -92,6 +92,26 @@ Before routing via Task tool, check if Agent Teams is available (`CLAUDE_CODE_EX
|
|
|
92
92
|
| Multi-round verification (sauron) | Task Tool |
|
|
93
93
|
| Agent audit + fix cycle | Agent Teams |
|
|
94
94
|
|
|
95
|
+
## No Match Fallback
|
|
96
|
+
|
|
97
|
+
When no manager agent matches the request but the task is clearly management-related:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
User Input → No matching manager agent
|
|
101
|
+
↓
|
|
102
|
+
Evaluate: Is this a specialized management/tooling task?
|
|
103
|
+
YES → Delegate to mgr-creator with context:
|
|
104
|
+
domain: detected tool/technology
|
|
105
|
+
type: manager
|
|
106
|
+
skills: auto-discover from .claude/skills/
|
|
107
|
+
NO → Ask user for clarification
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Examples of dynamic creation triggers:**
|
|
111
|
+
- New CI/CD tool management (e.g., "ArgoCD 배포 관리해줘")
|
|
112
|
+
- New monitoring tool setup (e.g., "Grafana 대시보드 관리")
|
|
113
|
+
- Unfamiliar package manager operations
|
|
114
|
+
|
|
95
115
|
## Usage
|
|
96
116
|
|
|
97
117
|
This skill is NOT user-invocable. It is automatically triggered when the main conversation detects agent management intent.
|
package/templates/CLAUDE.md.en
CHANGED
|
@@ -95,9 +95,12 @@ When task requires multiple agents:
|
|
|
95
95
|
-> Main conversation (orchestrator) MUST coordinate
|
|
96
96
|
-> Main conversation assigns tasks to appropriate agents
|
|
97
97
|
-> Main conversation aggregates results
|
|
98
|
+
-> Orchestrator MUST NEVER directly modify files
|
|
98
99
|
|
|
99
100
|
Flow:
|
|
100
101
|
User -> Main conversation -> [agent-1, agent-2, agent-3] -> Main conversation -> User
|
|
102
|
+
|
|
103
|
+
Violation = immediate correction. No exception for "small changes".
|
|
101
104
|
```
|
|
102
105
|
|
|
103
106
|
---
|
|
@@ -117,8 +120,8 @@ Flow:
|
|
|
117
120
|
| R008 | Tool Identification | **ENFORCED** - Display agent when using ANY tool |
|
|
118
121
|
| R009 | Parallel Execution | **ENFORCED** - Parallel execution, large task decomposition |
|
|
119
122
|
| R010 | Orchestrator Coordination | **ENFORCED** - Orchestrator coordination, session continuity, direct action prohibition |
|
|
120
|
-
|
|
|
121
|
-
|
|
|
123
|
+
| R016 | Continuous Improvement | **ENFORCED** - Update rules when violations occur |
|
|
124
|
+
| R017 | Sync Verification | **ENFORCED** - Verify sync before structural changes |
|
|
122
125
|
|
|
123
126
|
### SHOULD (Strongly recommended)
|
|
124
127
|
| ID | Rule | Description |
|
|
@@ -128,8 +131,8 @@ Flow:
|
|
|
128
131
|
| R011 | Memory Integration | Session persistence with claude-mem |
|
|
129
132
|
| R012 | HUD Statusline | Real-time status display |
|
|
130
133
|
| R013 | Ecomode | Token efficiency for batch ops |
|
|
131
|
-
|
|
|
132
|
-
|
|
|
134
|
+
| R015 | Intent Transparency | **MUST** - Transparent agent routing |
|
|
135
|
+
| R018 | Agent Teams | Active use of Agent Teams when enabled |
|
|
133
136
|
|
|
134
137
|
### MAY (Optional)
|
|
135
138
|
| ID | Rule | Description |
|
|
@@ -159,7 +162,7 @@ Flow:
|
|
|
159
162
|
| `/optimize-analyze` | Analyze bundle and performance |
|
|
160
163
|
| `/optimize-bundle` | Optimize bundle size |
|
|
161
164
|
| `/optimize-report` | Generate optimization report |
|
|
162
|
-
| `/sauron-watch` | Full
|
|
165
|
+
| `/sauron-watch` | Full R017 verification |
|
|
163
166
|
| `/lists` | Show all available commands |
|
|
164
167
|
| `/status` | Show system status |
|
|
165
168
|
| `/help` | Show help information |
|
|
@@ -171,8 +174,8 @@ project/
|
|
|
171
174
|
+-- CLAUDE.md # Entry point
|
|
172
175
|
+-- .claude/
|
|
173
176
|
| +-- agents/ # Subagent definitions (42 files)
|
|
174
|
-
| +-- skills/ # Skills (
|
|
175
|
-
| +-- rules/ # Global rules (R000-
|
|
177
|
+
| +-- skills/ # Skills (52 directories)
|
|
178
|
+
| +-- rules/ # Global rules (R000-R018)
|
|
176
179
|
| +-- hooks/ # Hook scripts (memory, HUD)
|
|
177
180
|
| +-- contexts/ # Context files (ecomode)
|
|
178
181
|
+-- guides/ # Reference docs (22 topics)
|
|
@@ -188,6 +191,17 @@ Orchestration is handled by routing skills in the main conversation:
|
|
|
188
191
|
|
|
189
192
|
The main conversation acts as the sole orchestrator. Subagents cannot spawn other subagents.
|
|
190
193
|
|
|
194
|
+
### Dynamic Agent Creation
|
|
195
|
+
|
|
196
|
+
When no existing agent matches a specialized task, the system automatically creates one:
|
|
197
|
+
|
|
198
|
+
1. Routing skill detects no matching expert
|
|
199
|
+
2. Orchestrator delegates to mgr-creator with detected context
|
|
200
|
+
3. mgr-creator auto-discovers relevant skills and guides
|
|
201
|
+
4. New agent is created and used immediately
|
|
202
|
+
|
|
203
|
+
This is the core oh-my-customcode philosophy: **"No expert? CREATE one, connect knowledge, and USE it."**
|
|
204
|
+
|
|
191
205
|
## Agents Summary
|
|
192
206
|
|
|
193
207
|
| Type | Count | Agents |
|
|
@@ -216,8 +230,9 @@ When Claude Code's Agent Teams feature is enabled (`CLAUDE_CODE_EXPERIMENTAL_AGE
|
|
|
216
230
|
| Best for | Focused tasks | Research, review, debugging |
|
|
217
231
|
| Token cost | Lower | Higher |
|
|
218
232
|
|
|
219
|
-
**When enabled,
|
|
220
|
-
See
|
|
233
|
+
**When enabled, ACTIVELY prefer Agent Teams for qualifying collaborative tasks.**
|
|
234
|
+
See R018 (SHOULD-agent-teams.md) for the decision matrix.
|
|
235
|
+
Hybrid patterns (Claude + Codex, Dynamic Creation + Teams) are supported.
|
|
221
236
|
Task tool + routing skills remain the fallback for simple/cost-sensitive tasks.
|
|
222
237
|
|
|
223
238
|
## Quick Reference
|
package/templates/CLAUDE.md.ko
CHANGED
|
@@ -95,9 +95,12 @@ oh-my-customcode로 구동됩니다.
|
|
|
95
95
|
-> 메인 대화 (오케스트레이터)가 반드시 조율
|
|
96
96
|
-> 메인 대화가 적절한 에이전트에 작업 할당
|
|
97
97
|
-> 메인 대화가 결과 집계
|
|
98
|
+
-> 오케스트레이터는 절대 직접 파일을 수정하지 않음
|
|
98
99
|
|
|
99
100
|
흐름:
|
|
100
101
|
사용자 -> 메인 대화 -> [agent-1, agent-2, agent-3] -> 메인 대화 -> 사용자
|
|
102
|
+
|
|
103
|
+
위반 시 즉시 수정. "작은 변경"도 예외 없음.
|
|
101
104
|
```
|
|
102
105
|
|
|
103
106
|
---
|
|
@@ -117,8 +120,8 @@ oh-my-customcode로 구동됩니다.
|
|
|
117
120
|
| R008 | 도구 식별 | **강제** - 모든 도구 사용 시 에이전트 표시 |
|
|
118
121
|
| R009 | 병렬 실행 | **강제** - 병렬 실행, 대규모 작업 분해 |
|
|
119
122
|
| R010 | 오케스트레이터 조율 | **강제** - 오케스트레이터 조율, 세션 연속성, 직접 실행 금지 |
|
|
120
|
-
|
|
|
121
|
-
|
|
|
123
|
+
| R016 | 지속적 개선 | **강제** - 위반 발생 시 규칙 업데이트 |
|
|
124
|
+
| R017 | 동기화 검증 | **강제** - 구조 변경 전 검증 |
|
|
122
125
|
|
|
123
126
|
### SHOULD (강력 권장)
|
|
124
127
|
| ID | 규칙 | 설명 |
|
|
@@ -128,8 +131,8 @@ oh-my-customcode로 구동됩니다.
|
|
|
128
131
|
| R011 | 메모리 통합 | claude-mem을 통한 세션 지속성 |
|
|
129
132
|
| R012 | HUD 상태줄 | 실시간 상태 표시 |
|
|
130
133
|
| R013 | Ecomode | 배치 작업 토큰 효율성 |
|
|
131
|
-
|
|
|
132
|
-
|
|
|
134
|
+
| R015 | 의도 투명성 | **필수** - 투명한 에이전트 라우팅 |
|
|
135
|
+
| R018 | Agent Teams | 활성화 시 Agent Teams 적극 사용 |
|
|
133
136
|
|
|
134
137
|
### MAY (선택)
|
|
135
138
|
| ID | 규칙 | 설명 |
|
|
@@ -159,7 +162,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
159
162
|
| `/optimize-analyze` | 번들 및 성능 분석 |
|
|
160
163
|
| `/optimize-bundle` | 번들 크기 최적화 |
|
|
161
164
|
| `/optimize-report` | 최적화 리포트 생성 |
|
|
162
|
-
| `/sauron-watch` | 전체
|
|
165
|
+
| `/sauron-watch` | 전체 R017 검증 |
|
|
163
166
|
| `/lists` | 모든 사용 가능한 커맨드 표시 |
|
|
164
167
|
| `/status` | 시스템 상태 표시 |
|
|
165
168
|
| `/help` | 도움말 표시 |
|
|
@@ -171,8 +174,8 @@ project/
|
|
|
171
174
|
+-- CLAUDE.md # 진입점
|
|
172
175
|
+-- .claude/
|
|
173
176
|
| +-- agents/ # 서브에이전트 정의 (42 파일)
|
|
174
|
-
| +-- skills/ # 스킬 (
|
|
175
|
-
| +-- rules/ # 전역 규칙 (R000-
|
|
177
|
+
| +-- skills/ # 스킬 (52 디렉토리)
|
|
178
|
+
| +-- rules/ # 전역 규칙 (R000-R018)
|
|
176
179
|
| +-- hooks/ # 훅 스크립트 (메모리, HUD)
|
|
177
180
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
178
181
|
+-- guides/ # 레퍼런스 문서 (22 토픽)
|
|
@@ -188,6 +191,17 @@ project/
|
|
|
188
191
|
|
|
189
192
|
메인 대화가 유일한 오케스트레이터 역할을 합니다. 서브에이전트는 다른 서브에이전트를 생성할 수 없습니다.
|
|
190
193
|
|
|
194
|
+
### 동적 에이전트 생성
|
|
195
|
+
|
|
196
|
+
기존 에이전트 중 작업에 맞는 전문가가 없으면 자동으로 생성합니다:
|
|
197
|
+
|
|
198
|
+
1. 라우팅 스킬이 매칭 전문가 없음을 감지
|
|
199
|
+
2. 오케스트레이터가 mgr-creator에 컨텍스트와 함께 위임
|
|
200
|
+
3. mgr-creator가 관련 skills/guides를 자동 탐색
|
|
201
|
+
4. 새 에이전트 생성 후 즉시 사용
|
|
202
|
+
|
|
203
|
+
이것이 oh-my-customcode의 핵심 철학입니다: **"전문가가 없으면? 만들고, 지식을 연결하고, 사용한다."**
|
|
204
|
+
|
|
191
205
|
## 에이전트 요약
|
|
192
206
|
|
|
193
207
|
| 타입 | 수량 | 에이전트 |
|
|
@@ -216,8 +230,9 @@ Claude Code의 Agent Teams 기능이 활성화되어 있으면 (`CLAUDE_CODE_EXP
|
|
|
216
230
|
| 적합한 작업 | 집중된 작업 | 리서치, 리뷰, 디버깅 |
|
|
217
231
|
| 토큰 비용 | 낮음 | 높음 |
|
|
218
232
|
|
|
219
|
-
**활성화 시,
|
|
220
|
-
결정 매트릭스는
|
|
233
|
+
**활성화 시, 적격한 협업 작업에 Agent Teams를 적극적으로 우선 사용합니다.**
|
|
234
|
+
결정 매트릭스는 R018 (SHOULD-agent-teams.md)을 참조하세요.
|
|
235
|
+
하이브리드 패턴 (Claude + Codex, 동적 생성 + Teams)이 지원됩니다.
|
|
221
236
|
단순/비용 민감 작업에는 Task tool + 라우팅 스킬이 폴백으로 유지됩니다.
|
|
222
237
|
|
|
223
238
|
## 빠른 참조
|
package/templates/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "0.2.0",
|
|
3
|
-
"lastUpdated": "2026-02-
|
|
3
|
+
"lastUpdated": "2026-02-17T07:30:00.000Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "rules",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"name": "contexts",
|
|
37
37
|
"path": ".claude/contexts",
|
|
38
38
|
"description": "Context configuration files",
|
|
39
|
-
"files":
|
|
39
|
+
"files": 4
|
|
40
40
|
}
|
|
41
41
|
],
|
|
42
42
|
"source": "https://github.com/baekenough/oh-my-customcode"
|