oh-my-customcode 0.20.0 → 0.21.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 CHANGED
@@ -21,7 +21,7 @@ Like oh-my-zsh transformed shell customization, oh-my-customcode makes personali
21
21
 
22
22
  | Feature | Description |
23
23
  |---------|-------------|
24
- | **Batteries Included** | 41 agents, 55 skills, 22 guides, 18 rules, 2 hooks, 4 contexts, ontology graph - ready to use out of the box |
24
+ | **Batteries Included** | 41 agents, 60 skills, 22 guides, 18 rules, 2 hooks, 4 contexts, ontology graph - ready to use out of the box |
25
25
  | **Sub-Agent Model** | Supports hierarchical agent orchestration with specialized roles |
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 |
@@ -124,20 +124,20 @@ Claude Code selects the appropriate model and parallelizes independent tasks (up
124
124
  | **QA** | 3 | qa-planner, qa-writer, qa-engineer |
125
125
  | **Total** | **41** | |
126
126
 
127
- ### Skills (58)
127
+ ### Skills (60)
128
128
 
129
129
  | Category | Count | Skills |
130
130
  |----------|-------|--------|
131
131
  | **Routing** | 4 | secretary-routing, dev-lead-routing, de-lead-routing, qa-lead-routing |
132
132
  | **Best Practices** | 18 | go-best-practices, python-best-practices, typescript-best-practices, kotlin-best-practices, rust-best-practices, react-best-practices, fastapi-best-practices, springboot-best-practices, go-backend-best-practices, docker-best-practices, aws-best-practices, postgres-best-practices, supabase-postgres-best-practices, redis-best-practices, airflow-best-practices, dbt-best-practices, kafka-best-practices, snowflake-best-practices |
133
- | **Development** | 5 | dev-review, dev-refactor, create-agent, intent-detection, web-design-guidelines |
133
+ | **Development** | 6 | dev-review, dev-refactor, create-agent, intent-detection, web-design-guidelines, analysis |
134
134
  | **Data Engineering** | 2 | spark-best-practices, pipeline-architecture-patterns |
135
135
  | **Optimization** | 3 | optimize-analyze, optimize-bundle, optimize-report |
136
136
  | **Memory** | 3 | memory-save, memory-recall, memory-management |
137
137
  | **Package Management** | 3 | npm-publish, npm-version, npm-audit |
138
138
  | **Operations** | 7 | update-docs, update-external, audit-agents, fix-refs, sauron-watch, monitoring-setup, claude-code-bible |
139
139
  | **Utilities** | 5 | lists, help, status, result-aggregation, writing-clearly-and-concisely |
140
- | **Quality & Workflow** | 4 | multi-model-verification, structured-dev-cycle, model-escalation, stuck-recovery |
140
+ | **Quality & Workflow** | 6 | multi-model-verification, structured-dev-cycle, model-escalation, stuck-recovery, dag-orchestration, task-decomposition |
141
141
  | **Deploy** | 2 | vercel-deploy, codex-exec |
142
142
  | **External** | 1 | skills-sh-search |
143
143
 
@@ -225,7 +225,7 @@ your-project/
225
225
  │ ├── be-fastapi-expert.md
226
226
  │ ├── mgr-creator.md
227
227
  │ └── ...
228
- ├── skills/ # Skill modules (55 directories, each with SKILL.md)
228
+ ├── skills/ # Skill modules (60 directories, each with SKILL.md)
229
229
  │ ├── go-best-practices/
230
230
  │ ├── react-best-practices/
231
231
  │ ├── secretary-routing/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-customcode",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "description": "Batteries-included agent harness for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,198 @@
1
+ ---
2
+ name: dag-orchestration
3
+ description: YAML-based DAG workflow engine with topological execution and failure strategies
4
+ ---
5
+
6
+ # DAG Orchestration Skill
7
+
8
+ Defines and executes directed acyclic graph (DAG) workflows. The orchestrator uses this skill to plan multi-step tasks with dependencies, execute them in topologically-sorted order, and handle failures.
9
+
10
+ **Orchestrator-only** — only the main conversation uses this skill (R010). Subagents execute individual nodes.
11
+
12
+ ## Workflow Spec Format
13
+
14
+ ```yaml
15
+ # .claude/workflows/<name>.yaml or inline in conversation
16
+ workflow:
17
+ name: feature-implementation
18
+ description: Implement a new feature with tests and docs
19
+
20
+ nodes:
21
+ - id: analyze
22
+ agent: Explore
23
+ model: haiku
24
+ prompt: "Analyze codebase for integration points"
25
+
26
+ - id: implement
27
+ agent: lang-typescript-expert
28
+ model: sonnet
29
+ prompt: "Implement the feature"
30
+ depends_on: [analyze]
31
+
32
+ - id: test
33
+ agent: qa-engineer
34
+ model: sonnet
35
+ prompt: "Write and run tests"
36
+ depends_on: [implement]
37
+
38
+ - id: review
39
+ agent: lang-typescript-expert
40
+ model: opus
41
+ prompt: "Code review"
42
+ depends_on: [implement]
43
+
44
+ - id: docs
45
+ agent: arch-documenter
46
+ model: sonnet
47
+ prompt: "Update documentation"
48
+ depends_on: [implement]
49
+
50
+ - id: commit
51
+ agent: mgr-gitnerd
52
+ model: sonnet
53
+ prompt: "Commit changes"
54
+ depends_on: [test, review, docs]
55
+
56
+ config:
57
+ max_parallel: 4 # R009 limit
58
+ failure_strategy: stop # stop | skip | retry
59
+ retry_count: 2 # Max retries per node (if strategy=retry)
60
+ timeout_per_node: 300 # Seconds per node (0 = no limit)
61
+ ```
62
+
63
+ ## Execution Algorithm — Kahn's Topological Sort
64
+
65
+ ```
66
+ 1. Parse workflow YAML
67
+ 2. Build adjacency list and in-degree map
68
+ 3. Validate: detect cycles (error if found)
69
+ 4. Initialize queue with nodes where in-degree = 0
70
+ 5. While queue is not empty:
71
+ a. Dequeue up to max_parallel nodes
72
+ b. Execute nodes in parallel via Task tool (R009)
73
+ c. On completion:
74
+ - Success → decrement in-degree of dependents
75
+ - Failure → apply failure_strategy
76
+ d. Enqueue newly-ready nodes (in-degree = 0)
77
+ 6. Verify all nodes executed (detect unreachable nodes)
78
+ ```
79
+
80
+ ## Execution Rules
81
+
82
+ | Rule | Detail |
83
+ |------|--------|
84
+ | Max parallel | 4 concurrent nodes (R009) |
85
+ | Agent Teams gate | 3+ parallel nodes → check R018 eligibility |
86
+ | Orchestrator only | DAG scheduling runs in main conversation (R010) |
87
+ | Node execution | Each node = one Task tool call to specified agent |
88
+ | State tracking | `/tmp/.claude-dag-$PPID.json` |
89
+
90
+ ## Failure Strategies
91
+
92
+ | Strategy | Behavior |
93
+ |----------|----------|
94
+ | `stop` | Halt entire DAG on first failure (default) |
95
+ | `skip` | Mark failed node as skipped, continue dependents with warning |
96
+ | `retry` | Retry failed node up to `retry_count` times, then stop |
97
+
98
+ ## State File Format
99
+
100
+ ```json
101
+ {
102
+ "workflow": "feature-implementation",
103
+ "started_at": "2026-03-07T10:00:00Z",
104
+ "status": "running",
105
+ "nodes": {
106
+ "analyze": {"status": "completed", "started": "...", "completed": "..."},
107
+ "implement": {"status": "running", "started": "..."},
108
+ "test": {"status": "pending"},
109
+ "review": {"status": "pending"},
110
+ "docs": {"status": "pending"},
111
+ "commit": {"status": "blocked", "blocked_by": ["test", "review", "docs"]}
112
+ },
113
+ "execution_order": [["analyze"], ["implement"], ["test", "review", "docs"], ["commit"]]
114
+ }
115
+ ```
116
+
117
+ ## Display Format
118
+
119
+ ```
120
+ [DAG] feature-implementation — 6 nodes
121
+ [Layer 0] analyze ← running
122
+ [Layer 1] implement ← pending (depends: analyze)
123
+ [Layer 2] test, review, docs ← pending (parallel, depends: implement)
124
+ [Layer 3] commit ← blocked (depends: test, review, docs)
125
+ ```
126
+
127
+ Progress:
128
+ ```
129
+ [DAG Progress] 3/6 nodes completed
130
+ ✓ analyze (12s)
131
+ ✓ implement (45s)
132
+ → test (running)
133
+ → review (running)
134
+ → docs (running)
135
+ ○ commit (blocked)
136
+ ```
137
+
138
+ ## Common Workflow Templates
139
+
140
+ ### Feature Implementation
141
+ ```yaml
142
+ nodes: [analyze → implement → [test, review, docs] → commit]
143
+ ```
144
+
145
+ ### Code Review + Fix
146
+ ```yaml
147
+ nodes: [review → fix → re-review → commit]
148
+ failure_strategy: retry
149
+ ```
150
+
151
+ ### Multi-Language Project
152
+ ```yaml
153
+ nodes: [
154
+ analyze → [impl-frontend, impl-backend, impl-db] → integration-test → commit
155
+ ]
156
+ ```
157
+
158
+ ### Refactoring
159
+ ```yaml
160
+ nodes: [
161
+ analyze → plan → [refactor-1, refactor-2, refactor-3] → test → review → commit
162
+ ]
163
+ ```
164
+
165
+ ## Integration
166
+
167
+ | Rule | Integration |
168
+ |------|-------------|
169
+ | R009 | Max 4 parallel nodes; independent nodes MUST parallelize |
170
+ | R010 | DAG scheduler runs only in orchestrator |
171
+ | R015 | Display DAG plan before execution |
172
+ | R018 | 3+ parallel nodes → check Agent Teams eligibility |
173
+ | model-escalation | Node failures feed into task-outcome-recorder |
174
+ | stuck-recovery | Repeated node failures trigger stuck detection |
175
+
176
+ ## Inline DAG
177
+
178
+ For ad-hoc workflows without a YAML file:
179
+
180
+ ```
181
+ [DAG Plan]
182
+ 1. analyze (Explore:haiku)
183
+ 2. implement (lang-typescript-expert:sonnet) ← depends: 1
184
+ 3. test (qa-engineer:sonnet) ← depends: 2
185
+ 4. review (lang-typescript-expert:opus) ← depends: 2
186
+ 5. commit (mgr-gitnerd:sonnet) ← depends: 3, 4
187
+
188
+ Execute? [Y/n]
189
+ ```
190
+
191
+ The orchestrator builds the DAG from this inline format and executes using the same algorithm.
192
+
193
+ ## Limitations
194
+
195
+ - No cycles allowed (DAG = acyclic)
196
+ - Max 20 nodes per workflow (complexity guard)
197
+ - Nested DAGs not supported (flatten instead)
198
+ - Cross-workflow dependencies not supported
@@ -0,0 +1,181 @@
1
+ ---
2
+ name: task-decomposition
3
+ description: Auto-decompose large tasks into DAG-compatible parallel subtasks
4
+ ---
5
+
6
+ # Task Decomposition Skill
7
+
8
+ Analyzes task complexity and decomposes large tasks into smaller, parallelizable subtasks compatible with the DAG orchestration skill. The orchestrator uses this as a planning frontend before execution.
9
+
10
+ ## Trigger Conditions
11
+
12
+ Decomposition is **recommended** when any of these thresholds are met:
13
+
14
+ | Trigger | Threshold | Rationale |
15
+ |---------|-----------|-----------|
16
+ | Estimated duration | > 30 minutes | Too long for single agent |
17
+ | Files affected | > 3 files | Parallelizable across files |
18
+ | Domains involved | > 2 domains | Requires multiple specialists |
19
+ | Agent types needed | > 2 types | Cross-specialty coordination |
20
+
21
+ ## Decomposition Process
22
+
23
+ ```
24
+ 1. Analyze task scope
25
+ ├── Estimate duration, file count, domains
26
+ ├── Identify required agent types
27
+ └── Check trigger thresholds
28
+
29
+ 2. If thresholds met → decompose:
30
+ ├── Break into atomic subtasks (single agent, single concern)
31
+ ├── Identify dependencies between subtasks
32
+ ├── Map subtasks to agents (use routing skills)
33
+ └── Generate DAG workflow spec
34
+
35
+ 3. Present plan to user (R015 transparency)
36
+ ├── Show decomposed subtasks with agents
37
+ ├── Show dependency graph
38
+ ├── Show estimated parallel execution time
39
+ └── Request confirmation before execution
40
+
41
+ 4. Execute via dag-orchestration skill
42
+ ```
43
+
44
+ ## Decomposition Heuristics
45
+
46
+ ### By File Independence
47
+ ```
48
+ Task: "Update auth module across 5 files"
49
+ ├── auth.ts → lang-typescript-expert
50
+ ├── middleware.ts → lang-typescript-expert
51
+ ├── config.ts → lang-typescript-expert (independent)
52
+ ├── auth.test.ts → qa-engineer (depends: auth.ts)
53
+ └── README.md → arch-documenter (depends: all above)
54
+
55
+ DAG: [auth.ts, middleware.ts, config.ts] → auth.test.ts → README.md
56
+ ```
57
+
58
+ ### By Domain Separation
59
+ ```
60
+ Task: "Add user profile feature with API and UI"
61
+ ├── API endpoint → be-express-expert
62
+ ├── Database schema → db-postgres-expert
63
+ ├── Frontend component → fe-vercel-agent
64
+ └── Integration test → qa-engineer
65
+
66
+ DAG: [API, DB] → Frontend → Integration test
67
+ (API and DB are independent, Frontend needs both)
68
+ ```
69
+
70
+ ### By Layer
71
+ ```
72
+ Task: "Implement order processing in Spring Boot"
73
+ ├── Domain model → lang-kotlin-expert
74
+ ├── Repository → be-springboot-expert (depends: domain)
75
+ ├── Service → be-springboot-expert (depends: domain, repository)
76
+ ├── Controller → be-springboot-expert (depends: service)
77
+ └── Tests → qa-engineer (depends: all)
78
+
79
+ DAG: domain → [repository] → service → controller → tests
80
+ ```
81
+
82
+ ## Output Format
83
+
84
+ ### Decomposition Plan
85
+ ```
86
+ [Task Decomposition]
87
+ ├── Original: "Add user authentication with JWT"
88
+ ├── Complexity: High (4 files, 3 domains, ~45 min)
89
+ ├── Decomposed into 5 subtasks:
90
+
91
+ │ [1] analyze (Explore:haiku)
92
+ │ Scan codebase for existing auth patterns
93
+
94
+ │ [2] implement-auth (lang-typescript-expert:sonnet)
95
+ │ Implement JWT signing and validation
96
+ │ Depends: [1]
97
+
98
+ │ [3] implement-middleware (lang-typescript-expert:sonnet)
99
+ │ Create auth middleware
100
+ │ Depends: [1]
101
+
102
+ │ [4] write-tests (qa-engineer:sonnet)
103
+ │ Write auth tests
104
+ │ Depends: [2, 3]
105
+
106
+ │ [5] commit (mgr-gitnerd:sonnet)
107
+ │ Commit all changes
108
+ │ Depends: [4]
109
+
110
+ ├── Parallel layers: 3 (max 2 concurrent in layer 2)
111
+ ├── Estimated time: ~20 min (vs ~45 min sequential)
112
+ └── Proceed? [Y/n]
113
+ ```
114
+
115
+ ### Generated DAG Spec
116
+ ```yaml
117
+ workflow:
118
+ name: auto-decomposed-auth
119
+ description: "Auto-decomposed: Add user authentication with JWT"
120
+
121
+ nodes:
122
+ - id: analyze
123
+ agent: Explore
124
+ model: haiku
125
+ prompt: "Scan codebase for existing auth patterns"
126
+ - id: implement-auth
127
+ agent: lang-typescript-expert
128
+ model: sonnet
129
+ prompt: "Implement JWT signing and validation"
130
+ depends_on: [analyze]
131
+ - id: implement-middleware
132
+ agent: lang-typescript-expert
133
+ model: sonnet
134
+ prompt: "Create auth middleware"
135
+ depends_on: [analyze]
136
+ - id: write-tests
137
+ agent: qa-engineer
138
+ model: sonnet
139
+ prompt: "Write auth tests"
140
+ depends_on: [implement-auth, implement-middleware]
141
+ - id: commit
142
+ agent: mgr-gitnerd
143
+ model: sonnet
144
+ prompt: "Commit all changes"
145
+ depends_on: [write-tests]
146
+
147
+ config:
148
+ max_parallel: 4
149
+ failure_strategy: stop
150
+ ```
151
+
152
+ ## Atomic Task Criteria
153
+
154
+ A subtask is **atomic** when it meets ALL of:
155
+ - Single agent can handle it
156
+ - Single concern (one logical change)
157
+ - Independently testable outcome
158
+ - < 15 minutes estimated duration
159
+ - < 3 files affected
160
+
161
+ If a subtask is not atomic → decompose further (max 2 levels deep).
162
+
163
+ ## Skip Decomposition When
164
+
165
+ | Condition | Reason |
166
+ |-----------|--------|
167
+ | Single file edit | Already atomic |
168
+ | < 10 minutes estimated | Overhead not worth it |
169
+ | User explicitly requests "just do it" | User override |
170
+ | Single domain, single agent | No parallelization benefit |
171
+
172
+ ## Integration
173
+
174
+ | Component | Integration |
175
+ |-----------|-------------|
176
+ | dag-orchestration | Generates DAG specs consumed by dag-orchestration |
177
+ | Routing skills | Uses dev-lead/de-lead/qa-lead routing for agent mapping |
178
+ | R009 | Maximizes parallelization within max-4 limit |
179
+ | R010 | Decomposition happens in orchestrator only |
180
+ | R015 | Plan displayed before execution for user approval |
181
+ | R018 | 3+ agents in plan → check Agent Teams eligibility |
@@ -18,7 +18,7 @@
18
18
  "name": "skills",
19
19
  "path": ".claude/skills",
20
20
  "description": "Reusable skill modules (includes slash commands)",
21
- "files": 58
21
+ "files": 60
22
22
  },
23
23
  {
24
24
  "name": "guides",