oh-my-customcode 0.12.3 → 0.13.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 +1 -0
- package/dist/cli/index.js +17 -9
- 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 +19 -1
- 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 +21 -9
- package/templates/CLAUDE.md.ko +21 -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/cli/index.js
CHANGED
|
@@ -14074,11 +14074,18 @@ async function generateMCPConfig(targetDir) {
|
|
|
14074
14074
|
if (!ontologyExists) {
|
|
14075
14075
|
return;
|
|
14076
14076
|
}
|
|
14077
|
+
try {
|
|
14078
|
+
execSync3("uv venv .venv", { cwd: targetDir, stdio: "pipe" });
|
|
14079
|
+
execSync3("uv pip install ontology-rag", { cwd: targetDir, stdio: "pipe" });
|
|
14080
|
+
} catch (error2) {
|
|
14081
|
+
const msg = error2 instanceof Error ? error2.message : String(error2);
|
|
14082
|
+
throw new Error(`Failed to setup Python environment: ${msg}`);
|
|
14083
|
+
}
|
|
14077
14084
|
const config = {
|
|
14078
14085
|
mcpServers: {
|
|
14079
14086
|
"ontology-rag": {
|
|
14080
14087
|
type: "stdio",
|
|
14081
|
-
command: "python",
|
|
14088
|
+
command: ".venv/bin/python",
|
|
14082
14089
|
args: ["-m", "ontology_rag.mcp_server"],
|
|
14083
14090
|
env: {
|
|
14084
14091
|
ONTOLOGY_DIR: ontologyDir
|
|
@@ -14107,9 +14114,9 @@ async function generateMCPConfig(targetDir) {
|
|
|
14107
14114
|
`);
|
|
14108
14115
|
}
|
|
14109
14116
|
}
|
|
14110
|
-
async function
|
|
14117
|
+
async function checkUvAvailable() {
|
|
14111
14118
|
try {
|
|
14112
|
-
execSync3("
|
|
14119
|
+
execSync3("uv --version", { stdio: "pipe" });
|
|
14113
14120
|
return true;
|
|
14114
14121
|
} catch {
|
|
14115
14122
|
return false;
|
|
@@ -14187,16 +14194,17 @@ async function initCommand(options) {
|
|
|
14187
14194
|
const installedPaths = buildInstalledPaths(targetDir, installResult.installedComponents);
|
|
14188
14195
|
logInstallResultInfo(installResult);
|
|
14189
14196
|
logSuccessDetails(installedPaths, installResult.skippedComponents);
|
|
14190
|
-
const
|
|
14191
|
-
if (
|
|
14197
|
+
const uvAvailable = await checkUvAvailable();
|
|
14198
|
+
if (uvAvailable) {
|
|
14192
14199
|
try {
|
|
14193
14200
|
await generateMCPConfig(targetDir);
|
|
14194
|
-
} catch {
|
|
14195
|
-
|
|
14201
|
+
} catch (error2) {
|
|
14202
|
+
const msg = error2 instanceof Error ? error2.message : String(error2);
|
|
14203
|
+
console.warn(`Warning: Failed to setup MCP environment: ${msg}`);
|
|
14196
14204
|
}
|
|
14197
14205
|
} else {
|
|
14198
|
-
console.warn("Warning:
|
|
14199
|
-
console.warn("Install
|
|
14206
|
+
console.warn("Warning: uv not found. Skipping MCP server configuration.");
|
|
14207
|
+
console.warn("Install uv (https://docs.astral.sh/uv/) to enable MCP integration.");
|
|
14200
14208
|
}
|
|
14201
14209
|
return {
|
|
14202
14210
|
success: true,
|
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.
|
|
@@ -40,6 +40,7 @@ After restart/compaction: re-read CLAUDE.md, all delegation rules still apply. N
|
|
|
40
40
|
| Docker/Infra | infra-docker-expert |
|
|
41
41
|
| AWS | infra-aws-expert |
|
|
42
42
|
| Database schema | db-supabase-expert |
|
|
43
|
+
| Unmatched specialized task | mgr-creator → dynamic agent creation |
|
|
43
44
|
|
|
44
45
|
**Rules:**
|
|
45
46
|
- All file modifications MUST be delegated (orchestrator only uses Read/Glob/Grep)
|
|
@@ -62,6 +63,23 @@ Subagent NOT required for:
|
|
|
62
63
|
|
|
63
64
|
For specialized work, ALWAYS delegate to appropriate subagent.
|
|
64
65
|
|
|
66
|
+
## Dynamic Agent Creation (No-Match Fallback)
|
|
67
|
+
|
|
68
|
+
When routing detects no matching agent for a specialized task:
|
|
69
|
+
|
|
70
|
+
1. **Evaluate**: Is this a specialized task requiring domain expertise?
|
|
71
|
+
- YES → proceed to step 2
|
|
72
|
+
- NO → use general-purpose agent
|
|
73
|
+
2. **Delegate**: Orchestrator delegates to `mgr-creator` with context:
|
|
74
|
+
- Detected domain keywords
|
|
75
|
+
- File patterns found
|
|
76
|
+
- Required capabilities
|
|
77
|
+
3. **Create**: `mgr-creator` auto-discovers relevant skills/guides, creates agent
|
|
78
|
+
4. **Execute**: Orchestrator uses newly created agent for the original task
|
|
79
|
+
|
|
80
|
+
This is the core oh-my-customcode philosophy:
|
|
81
|
+
> "No expert? CREATE one, connect knowledge, and USE it."
|
|
82
|
+
|
|
65
83
|
## Model Selection
|
|
66
84
|
|
|
67
85
|
```
|
|
@@ -117,7 +135,7 @@ The skill's WORKFLOW is followed, but git EXECUTION is delegated to mgr-gitnerd
|
|
|
117
135
|
|
|
118
136
|
## Agent Teams (when enabled)
|
|
119
137
|
|
|
120
|
-
When `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`: use Agent Teams for 3+ agent coordinated tasks. See
|
|
138
|
+
When `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`: use Agent Teams for 3+ agent coordinated tasks. See R018 for decision matrix. Task tool remains fallback for simple/independent tasks.
|
|
121
139
|
|
|
122
140
|
## Announcement Format
|
|
123
141
|
|
|
@@ -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
|
@@ -117,8 +117,8 @@ Flow:
|
|
|
117
117
|
| R008 | Tool Identification | **ENFORCED** - Display agent when using ANY tool |
|
|
118
118
|
| R009 | Parallel Execution | **ENFORCED** - Parallel execution, large task decomposition |
|
|
119
119
|
| R010 | Orchestrator Coordination | **ENFORCED** - Orchestrator coordination, session continuity, direct action prohibition |
|
|
120
|
-
|
|
|
121
|
-
|
|
|
120
|
+
| R016 | Continuous Improvement | **ENFORCED** - Update rules when violations occur |
|
|
121
|
+
| R017 | Sync Verification | **ENFORCED** - Verify sync before structural changes |
|
|
122
122
|
|
|
123
123
|
### SHOULD (Strongly recommended)
|
|
124
124
|
| ID | Rule | Description |
|
|
@@ -128,8 +128,8 @@ Flow:
|
|
|
128
128
|
| R011 | Memory Integration | Session persistence with claude-mem |
|
|
129
129
|
| R012 | HUD Statusline | Real-time status display |
|
|
130
130
|
| R013 | Ecomode | Token efficiency for batch ops |
|
|
131
|
-
|
|
|
132
|
-
|
|
|
131
|
+
| R015 | Intent Transparency | **MUST** - Transparent agent routing |
|
|
132
|
+
| R018 | Agent Teams | Active use of Agent Teams when enabled |
|
|
133
133
|
|
|
134
134
|
### MAY (Optional)
|
|
135
135
|
| ID | Rule | Description |
|
|
@@ -159,7 +159,7 @@ Flow:
|
|
|
159
159
|
| `/optimize-analyze` | Analyze bundle and performance |
|
|
160
160
|
| `/optimize-bundle` | Optimize bundle size |
|
|
161
161
|
| `/optimize-report` | Generate optimization report |
|
|
162
|
-
| `/sauron-watch` | Full
|
|
162
|
+
| `/sauron-watch` | Full R017 verification |
|
|
163
163
|
| `/lists` | Show all available commands |
|
|
164
164
|
| `/status` | Show system status |
|
|
165
165
|
| `/help` | Show help information |
|
|
@@ -171,8 +171,8 @@ project/
|
|
|
171
171
|
+-- CLAUDE.md # Entry point
|
|
172
172
|
+-- .claude/
|
|
173
173
|
| +-- agents/ # Subagent definitions (42 files)
|
|
174
|
-
| +-- skills/ # Skills (
|
|
175
|
-
| +-- rules/ # Global rules (R000-
|
|
174
|
+
| +-- skills/ # Skills (52 directories)
|
|
175
|
+
| +-- rules/ # Global rules (R000-R018)
|
|
176
176
|
| +-- hooks/ # Hook scripts (memory, HUD)
|
|
177
177
|
| +-- contexts/ # Context files (ecomode)
|
|
178
178
|
+-- guides/ # Reference docs (22 topics)
|
|
@@ -188,6 +188,17 @@ Orchestration is handled by routing skills in the main conversation:
|
|
|
188
188
|
|
|
189
189
|
The main conversation acts as the sole orchestrator. Subagents cannot spawn other subagents.
|
|
190
190
|
|
|
191
|
+
### Dynamic Agent Creation
|
|
192
|
+
|
|
193
|
+
When no existing agent matches a specialized task, the system automatically creates one:
|
|
194
|
+
|
|
195
|
+
1. Routing skill detects no matching expert
|
|
196
|
+
2. Orchestrator delegates to mgr-creator with detected context
|
|
197
|
+
3. mgr-creator auto-discovers relevant skills and guides
|
|
198
|
+
4. New agent is created and used immediately
|
|
199
|
+
|
|
200
|
+
This is the core oh-my-customcode philosophy: **"No expert? CREATE one, connect knowledge, and USE it."**
|
|
201
|
+
|
|
191
202
|
## Agents Summary
|
|
192
203
|
|
|
193
204
|
| Type | Count | Agents |
|
|
@@ -216,8 +227,9 @@ When Claude Code's Agent Teams feature is enabled (`CLAUDE_CODE_EXPERIMENTAL_AGE
|
|
|
216
227
|
| Best for | Focused tasks | Research, review, debugging |
|
|
217
228
|
| Token cost | Lower | Higher |
|
|
218
229
|
|
|
219
|
-
**When enabled,
|
|
220
|
-
See
|
|
230
|
+
**When enabled, ACTIVELY prefer Agent Teams for qualifying collaborative tasks.**
|
|
231
|
+
See R018 (SHOULD-agent-teams.md) for the decision matrix.
|
|
232
|
+
Hybrid patterns (Claude + Codex, Dynamic Creation + Teams) are supported.
|
|
221
233
|
Task tool + routing skills remain the fallback for simple/cost-sensitive tasks.
|
|
222
234
|
|
|
223
235
|
## Quick Reference
|
package/templates/CLAUDE.md.ko
CHANGED
|
@@ -117,8 +117,8 @@ oh-my-customcode로 구동됩니다.
|
|
|
117
117
|
| R008 | 도구 식별 | **강제** - 모든 도구 사용 시 에이전트 표시 |
|
|
118
118
|
| R009 | 병렬 실행 | **강제** - 병렬 실행, 대규모 작업 분해 |
|
|
119
119
|
| R010 | 오케스트레이터 조율 | **강제** - 오케스트레이터 조율, 세션 연속성, 직접 실행 금지 |
|
|
120
|
-
|
|
|
121
|
-
|
|
|
120
|
+
| R016 | 지속적 개선 | **강제** - 위반 발생 시 규칙 업데이트 |
|
|
121
|
+
| R017 | 동기화 검증 | **강제** - 구조 변경 전 검증 |
|
|
122
122
|
|
|
123
123
|
### SHOULD (강력 권장)
|
|
124
124
|
| ID | 규칙 | 설명 |
|
|
@@ -128,8 +128,8 @@ oh-my-customcode로 구동됩니다.
|
|
|
128
128
|
| R011 | 메모리 통합 | claude-mem을 통한 세션 지속성 |
|
|
129
129
|
| R012 | HUD 상태줄 | 실시간 상태 표시 |
|
|
130
130
|
| R013 | Ecomode | 배치 작업 토큰 효율성 |
|
|
131
|
-
|
|
|
132
|
-
|
|
|
131
|
+
| R015 | 의도 투명성 | **필수** - 투명한 에이전트 라우팅 |
|
|
132
|
+
| R018 | Agent Teams | 활성화 시 Agent Teams 적극 사용 |
|
|
133
133
|
|
|
134
134
|
### MAY (선택)
|
|
135
135
|
| ID | 규칙 | 설명 |
|
|
@@ -159,7 +159,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
159
159
|
| `/optimize-analyze` | 번들 및 성능 분석 |
|
|
160
160
|
| `/optimize-bundle` | 번들 크기 최적화 |
|
|
161
161
|
| `/optimize-report` | 최적화 리포트 생성 |
|
|
162
|
-
| `/sauron-watch` | 전체
|
|
162
|
+
| `/sauron-watch` | 전체 R017 검증 |
|
|
163
163
|
| `/lists` | 모든 사용 가능한 커맨드 표시 |
|
|
164
164
|
| `/status` | 시스템 상태 표시 |
|
|
165
165
|
| `/help` | 도움말 표시 |
|
|
@@ -171,8 +171,8 @@ project/
|
|
|
171
171
|
+-- CLAUDE.md # 진입점
|
|
172
172
|
+-- .claude/
|
|
173
173
|
| +-- agents/ # 서브에이전트 정의 (42 파일)
|
|
174
|
-
| +-- skills/ # 스킬 (
|
|
175
|
-
| +-- rules/ # 전역 규칙 (R000-
|
|
174
|
+
| +-- skills/ # 스킬 (52 디렉토리)
|
|
175
|
+
| +-- rules/ # 전역 규칙 (R000-R018)
|
|
176
176
|
| +-- hooks/ # 훅 스크립트 (메모리, HUD)
|
|
177
177
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
178
178
|
+-- guides/ # 레퍼런스 문서 (22 토픽)
|
|
@@ -188,6 +188,17 @@ project/
|
|
|
188
188
|
|
|
189
189
|
메인 대화가 유일한 오케스트레이터 역할을 합니다. 서브에이전트는 다른 서브에이전트를 생성할 수 없습니다.
|
|
190
190
|
|
|
191
|
+
### 동적 에이전트 생성
|
|
192
|
+
|
|
193
|
+
기존 에이전트 중 작업에 맞는 전문가가 없으면 자동으로 생성합니다:
|
|
194
|
+
|
|
195
|
+
1. 라우팅 스킬이 매칭 전문가 없음을 감지
|
|
196
|
+
2. 오케스트레이터가 mgr-creator에 컨텍스트와 함께 위임
|
|
197
|
+
3. mgr-creator가 관련 skills/guides를 자동 탐색
|
|
198
|
+
4. 새 에이전트 생성 후 즉시 사용
|
|
199
|
+
|
|
200
|
+
이것이 oh-my-customcode의 핵심 철학입니다: **"전문가가 없으면? 만들고, 지식을 연결하고, 사용한다."**
|
|
201
|
+
|
|
191
202
|
## 에이전트 요약
|
|
192
203
|
|
|
193
204
|
| 타입 | 수량 | 에이전트 |
|
|
@@ -216,8 +227,9 @@ Claude Code의 Agent Teams 기능이 활성화되어 있으면 (`CLAUDE_CODE_EXP
|
|
|
216
227
|
| 적합한 작업 | 집중된 작업 | 리서치, 리뷰, 디버깅 |
|
|
217
228
|
| 토큰 비용 | 낮음 | 높음 |
|
|
218
229
|
|
|
219
|
-
**활성화 시,
|
|
220
|
-
결정 매트릭스는
|
|
230
|
+
**활성화 시, 적격한 협업 작업에 Agent Teams를 적극적으로 우선 사용합니다.**
|
|
231
|
+
결정 매트릭스는 R018 (SHOULD-agent-teams.md)을 참조하세요.
|
|
232
|
+
하이브리드 패턴 (Claude + Codex, 동적 생성 + Teams)이 지원됩니다.
|
|
221
233
|
단순/비용 민감 작업에는 Task tool + 라우팅 스킬이 폴백으로 유지됩니다.
|
|
222
234
|
|
|
223
235
|
## 빠른 참조
|
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"
|