oh-my-customcode 0.35.3 → 0.36.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 +167 -236
- package/package.json +1 -1
- package/templates/.claude/hooks/hooks.json +20 -0
- package/templates/.claude/hooks/scripts/content-hash-validator.sh +73 -0
- package/templates/.claude/schemas/tool-inputs.json +62 -0
- package/templates/.claude/skills/omcustom-release-notes/SKILL.md +117 -0
- package/templates/.claude/skills/omcustom-takeover/SKILL.md +115 -0
- package/templates/.claude/skills/reasoning-sandwich/SKILL.md +64 -0
- package/templates/CLAUDE.md.en +6 -3
- package/templates/CLAUDE.md.ko +6 -3
- package/templates/manifest.json +2 -2
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# oh-my-customcode
|
|
6
6
|
|
|
7
|
-
> **Your
|
|
7
|
+
> **Your AI Agent Stack. Compiled, Not Configured.**
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/oh-my-customcode)
|
|
10
10
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -13,294 +13,245 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
44 agents. 74 skills. 20 rules. One command.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g oh-my-customcode && cd your-project && omcustom init
|
|
20
|
+
```
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
---
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|---------|-------------|
|
|
24
|
-
| **Batteries Included** | 44 agents, 71 skills, 25 guides, 19 rules, 1 hook, 4 contexts, ontology graph - ready to use out of the box |
|
|
25
|
-
| **Sub-Agent Model** | Supports hierarchical agent orchestration with specialized roles |
|
|
26
|
-
| **Dead Simple Customization** | Create a folder + markdown file = new agent or skill |
|
|
27
|
-
| **Mix and Match** | Use built-in components, create your own, or combine both |
|
|
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 |
|
|
24
|
+
## Philosophy
|
|
30
25
|
|
|
31
|
-
|
|
26
|
+
oh-my-customcode is built on two ideas:
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
# Install globally
|
|
35
|
-
npm install -g oh-my-customcode
|
|
28
|
+
**1. Agent systems are compiled, not configured.**
|
|
36
29
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
| Compile Concept | oh-my-customcode |
|
|
31
|
+
|----------------|-----------------|
|
|
32
|
+
| Source code | `.claude/skills/` — reusable knowledge and workflows |
|
|
33
|
+
| Build artifacts | `.claude/agents/` — executable specialists assembled from skills |
|
|
34
|
+
| Compiler | `mgr-sauron` (R017) — structural verification and integrity |
|
|
35
|
+
| Spec | `.claude/rules/` — constraints and build rules |
|
|
36
|
+
| Linker | Routing skills — connect agents to tasks |
|
|
37
|
+
| Standard library | `guides/` — shared reference documentation |
|
|
41
38
|
|
|
42
|
-
|
|
39
|
+
Skills are source. Agents are compiled output. Sauron verifies the build. This separation means skills evolve independently of agents, and agents can be recompiled from updated skills at any time.
|
|
43
40
|
|
|
44
|
-
|
|
41
|
+
**2. If it can't be done, make it work.**
|
|
45
42
|
|
|
46
|
-
|
|
43
|
+
When no specialist exists for a task, oh-my-customcode does not fail. It creates one.
|
|
47
44
|
|
|
48
|
-
|
|
45
|
+
```
|
|
46
|
+
User: "Review this Terraform module"
|
|
47
|
+
→ Routing: no terraform expert found
|
|
48
|
+
→ mgr-creator discovers: infra-aws-expert skills + docker-best-practices guide
|
|
49
|
+
→ Creates: infra-terraform-expert.md
|
|
50
|
+
→ Executes the review immediately
|
|
51
|
+
→ Agent persists for future use
|
|
52
|
+
```
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
This is not a fallback. It is the design. The system treats missing expertise as a build problem — find the right skills, compile a new agent, execute.
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
---
|
|
53
57
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"Make code reviews stricter"
|
|
58
|
-
"Set up a deploy review pipeline"
|
|
59
|
-
```
|
|
58
|
+
## How It Works
|
|
59
|
+
|
|
60
|
+
### Orchestration
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
The main conversation acts as a singleton orchestrator (R010). It never writes files directly. Every action is delegated through routing skills to specialized agents.
|
|
62
63
|
|
|
63
64
|
```
|
|
64
65
|
User (natural language)
|
|
65
|
-
→
|
|
66
|
-
→
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
→ Routing skill (intent detection, confidence scoring)
|
|
67
|
+
→ Specialized agent (isolated execution)
|
|
68
|
+
→ Result returned to orchestrator
|
|
69
|
+
→ Response to user
|
|
69
70
|
```
|
|
70
71
|
|
|
71
|
-
|
|
72
|
+
Four routing skills cover the full domain:
|
|
72
73
|
|
|
73
|
-
|
|
74
|
+
| Routing Skill | Routes To |
|
|
75
|
+
|--------------|-----------|
|
|
76
|
+
| secretary-routing | Manager agents (mgr-*), system agents (sys-*) |
|
|
77
|
+
| dev-lead-routing | Language, backend, frontend, tooling, DB, infra, arch agents |
|
|
78
|
+
| de-lead-routing | Data engineering agents (de-*) |
|
|
79
|
+
| qa-lead-routing | QA team (qa-planner, qa-writer, qa-engineer) |
|
|
74
80
|
|
|
75
|
-
|
|
81
|
+
### Model Selection
|
|
76
82
|
|
|
77
|
-
|
|
78
|
-
|-------|-------|---------|
|
|
79
|
-
| `opus` | Complex reasoning, architecture | Code review, design analysis |
|
|
80
|
-
| `sonnet` | General tasks (default) | Agent creation, code generation |
|
|
81
|
-
| `haiku` | Fast, simple operations | File search, validation |
|
|
83
|
+
Each agent runs on the model optimized for its task:
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
| Model | When | Examples |
|
|
86
|
+
|-------|------|---------|
|
|
87
|
+
| `opus` | Complex reasoning, architecture | Design review, research synthesis |
|
|
88
|
+
| `sonnet` | Implementation, general tasks | Code generation, agent creation |
|
|
89
|
+
| `haiku` | Fast validation, search | File search, count verification |
|
|
90
|
+
|
|
91
|
+
The reasoning-sandwich pattern formalizes this: opus for pre-analysis, sonnet for implementation, haiku for post-verification.
|
|
92
|
+
|
|
93
|
+
### Parallel Execution
|
|
94
|
+
|
|
95
|
+
Independent tasks run in parallel (R009). Up to 4 concurrent agents per message:
|
|
84
96
|
|
|
85
97
|
```
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
dev-lead-routing (routing skill)
|
|
91
|
-
├── lang-golang-expert:sonnet — Go implementation
|
|
92
|
-
├── lang-python-expert:sonnet — Python implementation
|
|
93
|
-
└── qa-engineer:sonnet — test generation
|
|
98
|
+
Agent(lang-golang-expert):sonnet ┐
|
|
99
|
+
Agent(lang-python-expert):sonnet ├─ All spawned in one message
|
|
100
|
+
Agent(qa-engineer):sonnet │
|
|
101
|
+
Agent(arch-documenter):haiku ┘
|
|
94
102
|
```
|
|
95
103
|
|
|
96
|
-
|
|
104
|
+
---
|
|
97
105
|
|
|
98
|
-
|
|
106
|
+
### Agents (44)
|
|
99
107
|
|
|
100
|
-
|
|
108
|
+
| Category | Count | Agents |
|
|
109
|
+
|----------|-------|--------|
|
|
110
|
+
| Languages | 6 | lang-golang, lang-python, lang-rust, lang-kotlin, lang-typescript, lang-java21 |
|
|
111
|
+
| Backend | 6 | be-fastapi, be-springboot, be-go-backend, be-express, be-nestjs, be-django |
|
|
112
|
+
| Frontend | 4 | fe-vercel, fe-vuejs, fe-svelte, fe-flutter |
|
|
113
|
+
| Data Engineering | 6 | de-airflow, de-dbt, de-spark, de-kafka, de-snowflake, de-pipeline |
|
|
114
|
+
| Database | 3 | db-supabase, db-postgres, db-redis |
|
|
115
|
+
| Tooling | 3 | tool-npm, tool-optimizer, tool-bun |
|
|
116
|
+
| Architecture | 2 | arch-documenter, arch-speckit |
|
|
117
|
+
| Infrastructure | 2 | infra-docker, infra-aws |
|
|
118
|
+
| QA | 3 | qa-planner, qa-writer, qa-engineer |
|
|
119
|
+
| Security | 1 | sec-codeql |
|
|
120
|
+
| Managers | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
121
|
+
| System | 2 | sys-memory-keeper, sys-naggy |
|
|
122
|
+
|
|
123
|
+
Each agent declares its tools, model, memory scope, and limitations in YAML frontmatter. Tool budgets are enforced per agent type for accuracy.
|
|
101
124
|
|
|
102
|
-
|
|
103
|
-
|---------|-------------|
|
|
104
|
-
| `/omcustom:analysis` | Analyze project and auto-configure agents, skills, rules |
|
|
105
|
-
| `/research` | 10-team parallel deep analysis with cross-verification |
|
|
125
|
+
---
|
|
106
126
|
|
|
107
|
-
|
|
127
|
+
### Skills (74)
|
|
108
128
|
|
|
109
|
-
|
|
|
110
|
-
|
|
111
|
-
|
|
|
112
|
-
|
|
|
129
|
+
| Category | Count | Includes |
|
|
130
|
+
|----------|-------|----------|
|
|
131
|
+
| Best Practices | 22 | Go, Python, TypeScript, Kotlin, Rust, React, FastAPI, Spring Boot, Django, Flutter, Docker, AWS, Postgres, Redis, Kafka, dbt, Spark, Snowflake, Airflow, and more |
|
|
132
|
+
| Routing | 4 | secretary, dev-lead, de-lead, qa-lead |
|
|
133
|
+
| Workflow | 12 | structured-dev-cycle, deep-plan, research, evaluator-optimizer, dag-orchestration, worker-reviewer-pipeline, reasoning-sandwich, and more |
|
|
134
|
+
| Development | 7 | dev-review, dev-refactor, analysis, create-agent, intent-detection, web-design-guidelines, omcustom-takeover |
|
|
135
|
+
| Operations | 9 | update-docs, audit-agents, sauron-watch, monitoring-setup, fix-refs, release-notes, and more |
|
|
136
|
+
| Memory | 3 | memory-save, memory-recall, memory-management |
|
|
137
|
+
| Package | 3 | npm-publish, npm-version, npm-audit |
|
|
138
|
+
| Optimization | 3 | optimize-analyze, optimize-bundle, optimize-report |
|
|
139
|
+
| Security | 2 | cve-triage, jinja2-prompts |
|
|
140
|
+
| Other | 8 | codex-exec, vercel-deploy, skills-sh-search, result-aggregation, writing-clearly-and-concisely, and more |
|
|
113
141
|
|
|
114
|
-
|
|
142
|
+
Skills use a 3-tier scope system: `core` (universal), `harness` (agent/skill maintenance), `package` (project-specific).
|
|
115
143
|
|
|
116
|
-
|
|
117
|
-
|---------|-------------|
|
|
118
|
-
| `/omcustom:create-agent` | Create new agent |
|
|
119
|
-
| `/omcustom:update-docs` | Sync project structure and documentation |
|
|
120
|
-
| `/omcustom:update-external` | Update agents from external sources |
|
|
121
|
-
| `/omcustom:audit-agents` | Audit agent dependencies |
|
|
122
|
-
| `/omcustom:fix-refs` | Fix broken references |
|
|
144
|
+
---
|
|
123
145
|
|
|
124
|
-
|
|
146
|
+
## Commands
|
|
125
147
|
|
|
126
|
-
|
|
127
|
-
|---------|-------------|
|
|
128
|
-
| `/memory-save` | Save session context to claude-mem |
|
|
129
|
-
| `/memory-recall` | Search and recall memories |
|
|
148
|
+
All commands are invoked inside the Claude Code conversation.
|
|
130
149
|
|
|
131
|
-
|
|
150
|
+
### Development
|
|
132
151
|
|
|
133
|
-
| Command |
|
|
152
|
+
| Command | What it does |
|
|
134
153
|
|---------|-------------|
|
|
135
|
-
| `/
|
|
136
|
-
| `/
|
|
137
|
-
| `/
|
|
154
|
+
| `/dev-review` | Code review against best practices |
|
|
155
|
+
| `/dev-refactor` | Refactor for structure and patterns |
|
|
156
|
+
| `/structured-dev-cycle` | 6-stage development: plan → verify → implement → verify → compound → done |
|
|
157
|
+
| `/deep-plan` | Research-validated planning |
|
|
158
|
+
| `/research` | 10-team parallel analysis with cross-verification |
|
|
138
159
|
|
|
139
|
-
|
|
160
|
+
### Agent Management
|
|
140
161
|
|
|
141
|
-
| Command |
|
|
162
|
+
| Command | What it does |
|
|
142
163
|
|---------|-------------|
|
|
143
|
-
| `/
|
|
144
|
-
| `/
|
|
145
|
-
| `/
|
|
164
|
+
| `/omcustom:analysis` | Analyze project, auto-configure agents and skills |
|
|
165
|
+
| `/omcustom:create-agent` | Create a new agent |
|
|
166
|
+
| `/omcustom:takeover` | Extract canonical spec from existing agent or skill |
|
|
167
|
+
| `/omcustom:audit-agents` | Audit agent dependencies |
|
|
168
|
+
| `/omcustom:update-docs` | Sync project structure and documentation |
|
|
169
|
+
| `/omcustom:sauron-watch` | Full structural verification (5+3 rounds) |
|
|
146
170
|
|
|
147
|
-
|
|
171
|
+
### Package & Release
|
|
148
172
|
|
|
149
|
-
| Command |
|
|
173
|
+
| Command | What it does |
|
|
150
174
|
|---------|-------------|
|
|
151
|
-
| `/omcustom:
|
|
152
|
-
| `/omcustom:
|
|
153
|
-
| `/
|
|
154
|
-
| `/
|
|
155
|
-
| `/structured-dev-cycle` | 6-phase structured development cycle |
|
|
156
|
-
| `/omcustom:lists` | Show all available commands |
|
|
157
|
-
| `/omcustom:status` | System status and health checks |
|
|
158
|
-
| `/omcustom:help` | Help information |
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## What's Included
|
|
175
|
+
| `/omcustom:npm-publish` | Publish to npm |
|
|
176
|
+
| `/omcustom:npm-version` | Semantic versioning |
|
|
177
|
+
| `/omcustom:npm-audit` | Dependency security audit |
|
|
178
|
+
| `/omcustom:release-notes` | Generate release notes from git history |
|
|
163
179
|
|
|
164
|
-
###
|
|
180
|
+
### Memory & System
|
|
165
181
|
|
|
166
|
-
|
|
|
167
|
-
|
|
168
|
-
|
|
|
169
|
-
|
|
|
170
|
-
|
|
|
171
|
-
|
|
|
172
|
-
|
|
|
173
|
-
| **Tooling** | 3 | tool-npm-expert, tool-optimizer, tool-bun-expert |
|
|
174
|
-
| **Data Engineering** | 6 | de-airflow-expert, de-dbt-expert, de-spark-expert, de-kafka-expert, de-snowflake-expert, de-pipeline-expert |
|
|
175
|
-
| **Database** | 3 | db-supabase-expert, db-postgres-expert, db-redis-expert |
|
|
176
|
-
| **Architecture** | 2 | arch-documenter, arch-speckit-agent |
|
|
177
|
-
| **Infrastructure** | 2 | infra-docker-expert, infra-aws-expert |
|
|
178
|
-
| **QA** | 3 | qa-planner, qa-writer, qa-engineer |
|
|
179
|
-
| **Security** | 1 | sec-codeql-expert |
|
|
180
|
-
| **Total** | **44** | |
|
|
181
|
-
|
|
182
|
-
### Skills (71)
|
|
183
|
-
|
|
184
|
-
| Category | Count | Skills |
|
|
185
|
-
|----------|-------|--------|
|
|
186
|
-
| **Routing** | 4 | secretary-routing, dev-lead-routing, de-lead-routing, qa-lead-routing |
|
|
187
|
-
| **Best Practices** | 21 | 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, django-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, flutter-best-practices, java21-best-practices |
|
|
188
|
-
| **Development** | 6 | dev-review, dev-refactor, create-agent, intent-detection, web-design-guidelines, analysis |
|
|
189
|
-
| **Data Engineering** | 2 | spark-best-practices, pipeline-architecture-patterns |
|
|
190
|
-
| **Optimization** | 3 | optimize-analyze, optimize-bundle, optimize-report |
|
|
191
|
-
| **Memory** | 3 | memory-save, memory-recall, memory-management |
|
|
192
|
-
| **Package Management** | 3 | npm-publish, npm-version, npm-audit |
|
|
193
|
-
| **Operations** | 7 | update-docs, update-external, audit-agents, fix-refs, sauron-watch, monitoring-setup, claude-code-bible |
|
|
194
|
-
| **Utilities** | 5 | lists, help, status, result-aggregation, writing-clearly-and-concisely |
|
|
195
|
-
| **Quality & Workflow** | 11 | multi-model-verification, structured-dev-cycle, model-escalation, stuck-recovery, dag-orchestration, task-decomposition, worker-reviewer-pipeline, pr-auto-improve, pipeline-guards, deep-plan, evaluator-optimizer |
|
|
196
|
-
| **Security** | 2 | cve-triage, jinja2-prompts |
|
|
197
|
-
| **Research** | 1 | research |
|
|
198
|
-
| **Deploy** | 2 | vercel-deploy, codex-exec |
|
|
199
|
-
| **External** | 1 | skills-sh-search |
|
|
200
|
-
|
|
201
|
-
Skills use a 3-tier scope system (`core`, `harness`, `package`) to control deployment behavior during `omcustom init`. Core and harness skills are installed by default; package-scoped skills (e.g., npm-publish) are excluded.
|
|
202
|
-
|
|
203
|
-
### Guides (25)
|
|
182
|
+
| Command | What it does |
|
|
183
|
+
|---------|-------------|
|
|
184
|
+
| `/memory-save` | Save session context |
|
|
185
|
+
| `/memory-recall` | Search and recall memories |
|
|
186
|
+
| `/omcustom:monitoring-setup` | OTel monitoring toggle |
|
|
187
|
+
| `/omcustom:lists` | Show all commands |
|
|
188
|
+
| `/omcustom:status` | System health check |
|
|
204
189
|
|
|
205
|
-
|
|
206
|
-
- Agent creation and management
|
|
207
|
-
- Skill development
|
|
208
|
-
- Pipeline workflows
|
|
209
|
-
- Sub-agent orchestration
|
|
210
|
-
- Best practices and patterns
|
|
211
|
-
- Data engineering workflows
|
|
212
|
-
- Database optimization
|
|
190
|
+
---
|
|
213
191
|
|
|
214
192
|
### Rules (19)
|
|
215
193
|
|
|
216
194
|
| Priority | Count | Purpose |
|
|
217
195
|
|----------|-------|---------|
|
|
218
|
-
| **MUST** |
|
|
219
|
-
| **SHOULD** | 6 |
|
|
220
|
-
| **MAY** | 1 | Optimization
|
|
196
|
+
| **MUST** | 13 | Safety, permissions, agent design, identification, orchestration, verification, completion |
|
|
197
|
+
| **SHOULD** | 6 | Interaction, error handling, memory, HUD, ecomode, ontology routing |
|
|
198
|
+
| **MAY** | 1 | Optimization |
|
|
221
199
|
|
|
222
|
-
|
|
200
|
+
Key rules: R010 (orchestrator never writes files), R009 (parallel execution mandatory), R017 (sauron verification before push), R020 (completion verification before declaring done).
|
|
223
201
|
|
|
224
|
-
|
|
202
|
+
---
|
|
225
203
|
|
|
226
|
-
###
|
|
204
|
+
### Guides (25)
|
|
227
205
|
|
|
228
|
-
|
|
206
|
+
Reference documentation covering best practices, architecture decisions, and integration patterns. Located in `guides/` at project root, covering topics from agent design to CI/CD to observability.
|
|
229
207
|
|
|
230
|
-
|
|
208
|
+
---
|
|
231
209
|
|
|
232
|
-
|
|
210
|
+
## Safety
|
|
233
211
|
|
|
234
|
-
|
|
212
|
+
oh-my-customcode includes three security hooks that run on every tool call:
|
|
235
213
|
|
|
236
|
-
|
|
|
237
|
-
|
|
238
|
-
|
|
|
239
|
-
|
|
|
240
|
-
|
|
|
241
|
-
| **Hybrid Search** | 4-signal ranking (keyword, graph, community, importance) |
|
|
242
|
-
| **Token Budget** | Adaptive budget management — reduces token usage by 75-95% |
|
|
243
|
-
| **MCP Server** | Direct integration with Claude Code via MCP protocol |
|
|
214
|
+
| Hook | Trigger | Action |
|
|
215
|
+
|------|---------|--------|
|
|
216
|
+
| secret-filter | Bash, Read output | Detects AWS keys, API tokens, private keys, bearer tokens |
|
|
217
|
+
| audit-log | Edit, Write, Bash, Agent | Append-only JSONL at `~/.claude/audit.jsonl` |
|
|
218
|
+
| schema-validator | Write, Edit, Bash input | Validates tool inputs, flags dangerous patterns |
|
|
244
219
|
|
|
245
|
-
|
|
220
|
+
All security hooks are advisory (exit 0). They warn but never block.
|
|
246
221
|
|
|
247
222
|
---
|
|
248
223
|
|
|
249
|
-
## CLI
|
|
224
|
+
## CLI
|
|
250
225
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
| `omcustom security` | Scan for security issues in hooks and configs |
|
|
261
|
-
|
|
262
|
-
**Global Options:**
|
|
263
|
-
| Option | Description |
|
|
264
|
-
|--------|-------------|
|
|
265
|
-
| `--skip-version-check` | Skip CLI tool version pre-flight check |
|
|
266
|
-
| `-v, --version` | Show version number |
|
|
267
|
-
| `-h, --help` | Show help |
|
|
226
|
+
```bash
|
|
227
|
+
omcustom init # Initialize in project
|
|
228
|
+
omcustom init --lang ko # Initialize with Korean
|
|
229
|
+
omcustom update # Update to latest
|
|
230
|
+
omcustom list # List components
|
|
231
|
+
omcustom doctor # Verify installation
|
|
232
|
+
omcustom doctor --fix # Auto-fix issues
|
|
233
|
+
omcustom security # Scan for security issues
|
|
234
|
+
```
|
|
268
235
|
|
|
269
236
|
---
|
|
270
237
|
|
|
271
238
|
## Project Structure
|
|
272
239
|
|
|
273
|
-
After `omcustom init`:
|
|
274
|
-
|
|
275
240
|
```
|
|
276
241
|
your-project/
|
|
277
|
-
├── CLAUDE.md
|
|
242
|
+
├── CLAUDE.md # Entry point
|
|
278
243
|
├── .claude/
|
|
279
|
-
│ ├── agents/
|
|
280
|
-
│
|
|
281
|
-
│
|
|
282
|
-
│
|
|
283
|
-
│
|
|
284
|
-
│ ├──
|
|
285
|
-
│
|
|
286
|
-
│
|
|
287
|
-
|
|
288
|
-
│ │ └── ...
|
|
289
|
-
│ ├── ontology/ # Ontology knowledge graph for RAG context
|
|
290
|
-
│ │ ├── schema.yaml
|
|
291
|
-
│ │ ├── agents.yaml
|
|
292
|
-
│ │ ├── skills.yaml
|
|
293
|
-
│ │ ├── rules.yaml
|
|
294
|
-
│ │ └── graphs/
|
|
295
|
-
│ ├── rules/ # Behavior rules (19 total)
|
|
296
|
-
│ ├── hooks/ # Event hooks (1 total)
|
|
297
|
-
│ └── contexts/ # Context files (4 total)
|
|
298
|
-
└── templates/
|
|
299
|
-
└── guides/ # Reference docs (25 total)
|
|
244
|
+
│ ├── agents/ # 44 agent definitions
|
|
245
|
+
│ ├── skills/ # 74 skill modules
|
|
246
|
+
│ ├── rules/ # 20 governance rules (R000-R020)
|
|
247
|
+
│ ├── hooks/ # 15 lifecycle hook scripts
|
|
248
|
+
│ ├── schemas/ # Tool input validation schemas
|
|
249
|
+
│ ├── specs/ # Extracted canonical specs
|
|
250
|
+
│ ├── contexts/ # 4 shared context files
|
|
251
|
+
│ └── ontology/ # Knowledge graph for RAG
|
|
252
|
+
└── guides/ # 25 reference documents
|
|
300
253
|
```
|
|
301
254
|
|
|
302
|
-
**Note**: In the official Claude Code format, there is no command registry — slash commands and natural language agent references are used.
|
|
303
|
-
|
|
304
255
|
---
|
|
305
256
|
|
|
306
257
|
## Development
|
|
@@ -309,30 +260,10 @@ your-project/
|
|
|
309
260
|
bun install # Install dependencies
|
|
310
261
|
bun run dev # Development mode
|
|
311
262
|
bun test # Run tests
|
|
312
|
-
bun run build #
|
|
263
|
+
bun run build # Production build
|
|
313
264
|
```
|
|
314
265
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
| Gate | Tool | Threshold |
|
|
318
|
-
|------|------|-----------|
|
|
319
|
-
| Lint | Biome | Zero errors (complexity enforced) |
|
|
320
|
-
| Test Coverage | Bun test | 95% (pre-commit), 97% (CI) |
|
|
321
|
-
| Security Audit | bun pm audit | No high/critical vulnerabilities |
|
|
322
|
-
| Dependabot | GitHub | Weekly scans, auto-PR for updates |
|
|
323
|
-
|
|
324
|
-
Pre-commit hooks automatically enforce lint, test, and coverage gates before each commit.
|
|
325
|
-
|
|
326
|
-
### Requirements
|
|
327
|
-
|
|
328
|
-
- Node.js >= 18.0.0
|
|
329
|
-
- Claude Code CLI
|
|
330
|
-
|
|
331
|
-
---
|
|
332
|
-
|
|
333
|
-
## Contributing
|
|
334
|
-
|
|
335
|
-
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
266
|
+
Requirements: Node.js >= 18.0.0, Claude Code CLI.
|
|
336
267
|
|
|
337
268
|
---
|
|
338
269
|
|
|
@@ -343,7 +274,7 @@ Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
|
343
274
|
---
|
|
344
275
|
|
|
345
276
|
<p align="center">
|
|
346
|
-
<strong>
|
|
277
|
+
<strong>No expert? Create one. Connect knowledge. Execute.</strong>
|
|
347
278
|
</p>
|
|
348
279
|
|
|
349
280
|
<p align="center">
|
package/package.json
CHANGED
|
@@ -62,6 +62,16 @@
|
|
|
62
62
|
],
|
|
63
63
|
"description": "Suggest manual compaction at logical intervals"
|
|
64
64
|
},
|
|
65
|
+
{
|
|
66
|
+
"matcher": "tool == \"Edit\"",
|
|
67
|
+
"hooks": [
|
|
68
|
+
{
|
|
69
|
+
"type": "command",
|
|
70
|
+
"command": "bash .claude/hooks/scripts/content-hash-validator.sh"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"description": "Validate file content hash before Edit — advisory staleness warning"
|
|
74
|
+
},
|
|
65
75
|
{
|
|
66
76
|
"matcher": "tool == \"Task\" || tool == \"Agent\"",
|
|
67
77
|
"hooks": [
|
|
@@ -212,6 +222,16 @@
|
|
|
212
222
|
],
|
|
213
223
|
"description": "Context budget advisor — track tool usage patterns and advise ecomode activation"
|
|
214
224
|
},
|
|
225
|
+
{
|
|
226
|
+
"matcher": "tool == \"Read\"",
|
|
227
|
+
"hooks": [
|
|
228
|
+
{
|
|
229
|
+
"type": "command",
|
|
230
|
+
"command": "bash .claude/hooks/scripts/content-hash-validator.sh"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"description": "Store content hashes for Read operations — enables Edit staleness detection"
|
|
234
|
+
},
|
|
215
235
|
{
|
|
216
236
|
"matcher": "tool == \"Edit\" || tool == \"Write\" || tool == \"Bash\" || tool == \"Task\" || tool == \"Agent\"",
|
|
217
237
|
"hooks": [
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Content-Hash Validator — Detect stale file state for Edit operations
|
|
3
|
+
# Trigger: PostToolUse on Read (stores hashes), PreToolUse on Edit (validates)
|
|
4
|
+
# Purpose: Advisory warning when file content changed between Read and Edit
|
|
5
|
+
# Protocol: stdin JSON -> validate -> stdout pass-through
|
|
6
|
+
# Always exits 0 (advisory only, never blocks)
|
|
7
|
+
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
input=$(cat)
|
|
11
|
+
|
|
12
|
+
# Hash store (PPID-scoped, session-only)
|
|
13
|
+
HASH_STORE="/tmp/.claude-content-hashes-${PPID}"
|
|
14
|
+
|
|
15
|
+
tool_name=$(echo "$input" | jq -r '.tool_name // "unknown"')
|
|
16
|
+
|
|
17
|
+
case "$tool_name" in
|
|
18
|
+
"Read")
|
|
19
|
+
# Store content hash for the file that was just read
|
|
20
|
+
file_path=$(echo "$input" | jq -r '.tool_input.file_path // ""')
|
|
21
|
+
output=$(echo "$input" | jq -r '.tool_output.output // ""')
|
|
22
|
+
|
|
23
|
+
if [ -n "$file_path" ] && [ -n "$output" ] && [ "$output" != "null" ]; then
|
|
24
|
+
content_hash=$(echo "$output" | md5 2>/dev/null || echo "$output" | md5sum 2>/dev/null | cut -d' ' -f1 || echo "unknown")
|
|
25
|
+
timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
26
|
+
|
|
27
|
+
# Store hash entry (overwrite previous for same file)
|
|
28
|
+
if [ -f "$HASH_STORE" ]; then
|
|
29
|
+
# Remove old entry for this file
|
|
30
|
+
grep -v "\"path\":\"${file_path}\"" "$HASH_STORE" > "${HASH_STORE}.tmp" 2>/dev/null || true
|
|
31
|
+
mv "${HASH_STORE}.tmp" "$HASH_STORE" 2>/dev/null || true
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
jq -cn \
|
|
35
|
+
--arg path "$file_path" \
|
|
36
|
+
--arg hash "$content_hash" \
|
|
37
|
+
--arg ts "$timestamp" \
|
|
38
|
+
'{path: $path, hash: $hash, stored_at: $ts}' >> "$HASH_STORE" 2>/dev/null || true
|
|
39
|
+
fi
|
|
40
|
+
;;
|
|
41
|
+
|
|
42
|
+
"Edit")
|
|
43
|
+
# Validate that file hasn't changed since last Read
|
|
44
|
+
file_path=$(echo "$input" | jq -r '.tool_input.file_path // ""')
|
|
45
|
+
|
|
46
|
+
if [ -n "$file_path" ] && [ -f "$HASH_STORE" ] && [ -f "$file_path" ]; then
|
|
47
|
+
stored_hash=$(grep "\"path\":\"${file_path}\"" "$HASH_STORE" 2>/dev/null | tail -1 | jq -r '.hash // ""' 2>/dev/null || echo "")
|
|
48
|
+
|
|
49
|
+
if [ -n "$stored_hash" ] && [ "$stored_hash" != "unknown" ]; then
|
|
50
|
+
current_hash=$(md5 -q "$file_path" 2>/dev/null || md5sum "$file_path" 2>/dev/null | cut -d' ' -f1 || echo "unknown")
|
|
51
|
+
|
|
52
|
+
if [ "$current_hash" != "unknown" ] && [ "$stored_hash" != "$current_hash" ]; then
|
|
53
|
+
echo "[Content-Hash] WARNING: $(basename "$file_path") may have changed since last Read" >&2
|
|
54
|
+
echo "[Content-Hash] Stored hash: ${stored_hash:0:8}... Current: ${current_hash:0:8}..." >&2
|
|
55
|
+
echo "[Content-Hash] Advisory: re-read the file before editing if unsure" >&2
|
|
56
|
+
fi
|
|
57
|
+
fi
|
|
58
|
+
fi
|
|
59
|
+
;;
|
|
60
|
+
esac
|
|
61
|
+
|
|
62
|
+
# Ring buffer: keep last 200 entries
|
|
63
|
+
if [ -f "$HASH_STORE" ]; then
|
|
64
|
+
line_count=$(wc -l < "$HASH_STORE" 2>/dev/null || echo "0")
|
|
65
|
+
if [ "$line_count" -gt 200 ]; then
|
|
66
|
+
tail -200 "$HASH_STORE" > "${HASH_STORE}.tmp"
|
|
67
|
+
mv "${HASH_STORE}.tmp" "$HASH_STORE"
|
|
68
|
+
fi
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# Always pass through
|
|
72
|
+
echo "$input"
|
|
73
|
+
exit 0
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"description": "Tool input validation schemas for PreToolUse hook",
|
|
4
|
+
"definitions": {
|
|
5
|
+
"Write": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["file_path", "content"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"file_path": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"minLength": 1,
|
|
12
|
+
"description": "Absolute file path to write"
|
|
13
|
+
},
|
|
14
|
+
"content": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "File content to write"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"Edit": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"required": ["file_path", "old_string", "new_string"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"file_path": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"minLength": 1,
|
|
27
|
+
"description": "Absolute file path to edit"
|
|
28
|
+
},
|
|
29
|
+
"old_string": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 1,
|
|
32
|
+
"description": "Text to find and replace"
|
|
33
|
+
},
|
|
34
|
+
"new_string": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Replacement text"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"additionalValidation": {
|
|
40
|
+
"rule": "old_string !== new_string",
|
|
41
|
+
"message": "old_string and new_string must be different"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"Bash": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"required": ["command"],
|
|
47
|
+
"properties": {
|
|
48
|
+
"command": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"minLength": 1,
|
|
51
|
+
"description": "Shell command to execute"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"dangerousPatterns": [
|
|
55
|
+
{ "pattern": "rm\\s+-rf\\s+/", "message": "Dangerous recursive delete from root" },
|
|
56
|
+
{ "pattern": "sudo\\s+", "message": "Elevated privilege command detected" },
|
|
57
|
+
{ "pattern": "> /dev/sd", "message": "Direct disk write detected" },
|
|
58
|
+
{ "pattern": "mkfs\\.", "message": "Filesystem format command detected" }
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omcustom-release-notes
|
|
3
|
+
description: Generate structured release notes from git history and closed issues within Claude Code session
|
|
4
|
+
scope: harness
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "<version> [--previous-tag <tag>]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Release Notes Generator
|
|
10
|
+
|
|
11
|
+
Generate structured release notes directly within the Claude Code session, using git history and GitHub issues. No external API calls needed — Claude Code itself analyzes and generates the notes.
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Replaces the CI-based `release-notes.yml` workflow that previously used Claude API (`ANTHROPIC_API_KEY`). The release notes are now generated in-session and passed directly to `gh release create --notes`.
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/omcustom:release-notes 0.36.0
|
|
21
|
+
/omcustom:release-notes 0.36.0 --previous-tag v0.35.3
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Workflow
|
|
25
|
+
|
|
26
|
+
### Phase 1: Gather Context
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 1. Determine previous tag
|
|
30
|
+
PREV_TAG=$(git tag --sort=-version:refname | grep -v "^v${VERSION}$" | head -1)
|
|
31
|
+
|
|
32
|
+
# 2. Get commit history
|
|
33
|
+
git log ${PREV_TAG}..HEAD --pretty=format:"%h %s"
|
|
34
|
+
|
|
35
|
+
# 3. Get changed files
|
|
36
|
+
git diff --name-status ${PREV_TAG}..HEAD
|
|
37
|
+
|
|
38
|
+
# 4. Get closed issues since previous tag
|
|
39
|
+
gh issue list --state closed --search "closed:>$(git log -1 --format=%ci ${PREV_TAG} | cut -d' ' -f1)" --json number,title,labels
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Phase 2: Classify Changes
|
|
43
|
+
|
|
44
|
+
Categorize commits using Conventional Commits:
|
|
45
|
+
|
|
46
|
+
| Prefix | Category | Emoji |
|
|
47
|
+
|--------|----------|-------|
|
|
48
|
+
| feat: | Features | :rocket: |
|
|
49
|
+
| fix: | Bug Fixes | :bug: |
|
|
50
|
+
| docs: | Documentation | :books: |
|
|
51
|
+
| refactor: | Refactoring | :recycle: |
|
|
52
|
+
| test: | Tests | :test_tube: |
|
|
53
|
+
| chore: | Chores | :wrench: |
|
|
54
|
+
| security | Security | :lock: |
|
|
55
|
+
|
|
56
|
+
### Phase 3: Generate Notes
|
|
57
|
+
|
|
58
|
+
Output format:
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
# Release v{VERSION}
|
|
62
|
+
|
|
63
|
+
## Highlights
|
|
64
|
+
(1-3 key features/changes)
|
|
65
|
+
|
|
66
|
+
## :rocket: Features
|
|
67
|
+
- **{title}** (#{issue}): {description}
|
|
68
|
+
|
|
69
|
+
## :bug: Bug Fixes
|
|
70
|
+
- **{title}** (#{issue}): {description}
|
|
71
|
+
|
|
72
|
+
## :lock: Security
|
|
73
|
+
- {security changes}
|
|
74
|
+
|
|
75
|
+
## :books: Documentation
|
|
76
|
+
- {doc changes}
|
|
77
|
+
|
|
78
|
+
## :recycle: Other Changes
|
|
79
|
+
- {other changes}
|
|
80
|
+
|
|
81
|
+
## Resource Changes
|
|
82
|
+
| Resource | Before | After | Delta |
|
|
83
|
+
|----------|--------|-------|-------|
|
|
84
|
+
| Rules | {n} | {n} | {delta} |
|
|
85
|
+
| Skills | {n} | {n} | {delta} |
|
|
86
|
+
| Agents | {n} | {n} | {delta} |
|
|
87
|
+
|
|
88
|
+
## Breaking Changes
|
|
89
|
+
{if any, otherwise omit section}
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
_Release notes generated with Claude Code_
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Phase 4: Apply
|
|
96
|
+
|
|
97
|
+
The generated notes can be:
|
|
98
|
+
1. **Direct**: Passed to `gh release create --notes "{notes}"`
|
|
99
|
+
2. **File**: Written to `release_notes.md` for review before use
|
|
100
|
+
3. **Update**: Used with `gh release edit v{VERSION} --notes "{notes}"`
|
|
101
|
+
|
|
102
|
+
## Integration
|
|
103
|
+
|
|
104
|
+
This skill is designed to be used during the release process:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
/omcustom:npm-version patch|minor|major -> version bump
|
|
108
|
+
/omcustom:release-notes {version} -> generate notes
|
|
109
|
+
mgr-gitnerd: gh release create -> create release with notes
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Notes
|
|
113
|
+
|
|
114
|
+
- No external API keys required
|
|
115
|
+
- Uses git history and gh CLI for data gathering
|
|
116
|
+
- Claude Code analyzes and generates notes in-context
|
|
117
|
+
- Resource count changes auto-detected from CLAUDE.md history
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omcustom-takeover
|
|
3
|
+
description: Extract canonical spec from existing agent or skill files
|
|
4
|
+
scope: harness
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "<agent-name>"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Takeover Skill
|
|
10
|
+
|
|
11
|
+
Extract a canonical specification from an existing agent or skill file. Inspired by codespeak.dev's reverse compilation concept — deriving specs from existing implementations.
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
When an agent or skill has evolved organically without a formal spec, `takeover` reverse-engineers a structured specification that captures its intent, invariants, workflow contract, and I/O contract.
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/omcustom:takeover <agent-name>
|
|
21
|
+
/omcustom:takeover <skill-name>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Workflow
|
|
25
|
+
|
|
26
|
+
### Phase 1: Read Target
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
1. Determine target type:
|
|
30
|
+
- Agent: read .claude/agents/<name>.md
|
|
31
|
+
- Skill: read .claude/skills/<name>/SKILL.md
|
|
32
|
+
2. Parse frontmatter (YAML metadata)
|
|
33
|
+
3. Parse body (markdown content)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Phase 2: Extract Spec Components
|
|
37
|
+
|
|
38
|
+
Extract these components from the target:
|
|
39
|
+
|
|
40
|
+
| Component | Source | Description |
|
|
41
|
+
|-----------|--------|-------------|
|
|
42
|
+
| `intent` | Description field + first paragraph | One-line purpose statement |
|
|
43
|
+
| `invariants` | Rules referenced, constraints mentioned | Things that must always be true |
|
|
44
|
+
| `workflow_contract` | Workflow/stages sections | Input → processing → output steps |
|
|
45
|
+
| `io_contract` | Tools field, input/output patterns | What the agent consumes and produces |
|
|
46
|
+
| `dependencies` | Skills field, guide references | External knowledge required |
|
|
47
|
+
| `boundaries` | Limitations field, disallowedTools | What the agent explicitly cannot do |
|
|
48
|
+
|
|
49
|
+
### Phase 3: Generate Spec
|
|
50
|
+
|
|
51
|
+
Output structured spec to `.claude/specs/<name>.spec.md`:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
---
|
|
55
|
+
name: <name>
|
|
56
|
+
type: agent | skill
|
|
57
|
+
source: .claude/agents/<name>.md | .claude/skills/<name>/SKILL.md
|
|
58
|
+
generated: <ISO-8601 timestamp>
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
# Spec: <name>
|
|
62
|
+
|
|
63
|
+
## Intent
|
|
64
|
+
<one-line purpose>
|
|
65
|
+
|
|
66
|
+
## Invariants
|
|
67
|
+
- <rule or constraint that must always hold>
|
|
68
|
+
- ...
|
|
69
|
+
|
|
70
|
+
## Workflow Contract
|
|
71
|
+
### Input
|
|
72
|
+
<what the agent/skill receives>
|
|
73
|
+
|
|
74
|
+
### Processing
|
|
75
|
+
1. <step>
|
|
76
|
+
2. <step>
|
|
77
|
+
|
|
78
|
+
### Output
|
|
79
|
+
<what the agent/skill produces>
|
|
80
|
+
|
|
81
|
+
## I/O Contract
|
|
82
|
+
### Consumes
|
|
83
|
+
- Tools: [<tools used>]
|
|
84
|
+
- Files: [<files read>]
|
|
85
|
+
- MCP: [<MCP tools if any>]
|
|
86
|
+
|
|
87
|
+
### Produces
|
|
88
|
+
- Files: [<files created/modified>]
|
|
89
|
+
- Output: [<what is returned>]
|
|
90
|
+
|
|
91
|
+
## Dependencies
|
|
92
|
+
- Skills: [<referenced skills>]
|
|
93
|
+
- Guides: [<referenced guides>]
|
|
94
|
+
- Rules: [<rules enforced>]
|
|
95
|
+
|
|
96
|
+
## Boundaries
|
|
97
|
+
- <what the agent explicitly cannot do>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Phase 4: Report
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
[Done] Spec extracted: .claude/specs/<name>.spec.md
|
|
104
|
+
├── Intent: <summary>
|
|
105
|
+
├── Invariants: <count> rules
|
|
106
|
+
├── Workflow: <step count> steps
|
|
107
|
+
└── Dependencies: <count> refs
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Notes
|
|
111
|
+
|
|
112
|
+
- Specs are git-untracked (under `.claude/`)
|
|
113
|
+
- Regenerate anytime with `/omcustom:takeover <name>`
|
|
114
|
+
- Used by `/dev-refactor --spec` for invariant-preserving refactoring
|
|
115
|
+
- Advisory output — human review recommended before using as contract
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reasoning-sandwich
|
|
3
|
+
description: Template for pre-reasoning → action → post-verification model allocation
|
|
4
|
+
scope: core
|
|
5
|
+
user-invocable: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Reasoning Sandwich Pattern
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
A model allocation pattern that wraps implementation actions with stronger-model reasoning phases. The "sandwich" structure ensures complex tasks get proper analysis before and verification after the core action.
|
|
13
|
+
|
|
14
|
+
## Pattern
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
[Pre-reasoning] → stronger model (opus)
|
|
18
|
+
├── Analyze requirements
|
|
19
|
+
├── Identify edge cases
|
|
20
|
+
└── Define success criteria
|
|
21
|
+
|
|
22
|
+
[Action] → balanced model (sonnet)
|
|
23
|
+
├── Implement solution
|
|
24
|
+
├── Generate code/content
|
|
25
|
+
└── Execute plan
|
|
26
|
+
|
|
27
|
+
[Post-verification] → balanced or lighter model (sonnet/haiku)
|
|
28
|
+
├── Verify against criteria
|
|
29
|
+
├── Check for regressions
|
|
30
|
+
└── Validate completeness
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Model Allocation Table
|
|
34
|
+
|
|
35
|
+
| Phase | Recommended Model | Rationale |
|
|
36
|
+
|-------|------------------|-----------|
|
|
37
|
+
| Pre-reasoning (analyze/plan) | opus | Complex architectural reasoning, edge case detection |
|
|
38
|
+
| Action (implement/generate) | sonnet | Optimized for code generation, balanced cost |
|
|
39
|
+
| Post-verification (review/test) | sonnet or haiku | Structural verification, checklist validation |
|
|
40
|
+
|
|
41
|
+
## When to Apply
|
|
42
|
+
|
|
43
|
+
| Scenario | Apply Sandwich? | Reason |
|
|
44
|
+
|----------|----------------|--------|
|
|
45
|
+
| New feature implementation | Yes | Needs analysis → code → verification |
|
|
46
|
+
| Bug fix with clear root cause | No | Direct action sufficient |
|
|
47
|
+
| Architecture decision | Yes | Heavy pre-reasoning, lighter action |
|
|
48
|
+
| Batch file edits | No | Mechanical action, no reasoning needed |
|
|
49
|
+
| Security-sensitive changes | Yes | Extra verification phase critical |
|
|
50
|
+
|
|
51
|
+
## Integration
|
|
52
|
+
|
|
53
|
+
This pattern is used by:
|
|
54
|
+
- `structured-dev-cycle` — stages map to sandwich phases
|
|
55
|
+
- `evaluator-optimizer` — generator/evaluator model selection guidance
|
|
56
|
+
- `deep-plan` — research (pre) → plan (action) → verify (post)
|
|
57
|
+
|
|
58
|
+
## Anti-patterns
|
|
59
|
+
|
|
60
|
+
| Anti-pattern | Problem | Fix |
|
|
61
|
+
|-------------|---------|-----|
|
|
62
|
+
| Opus for everything | Wasteful, slow | Reserve opus for reasoning-heavy phases |
|
|
63
|
+
| Haiku for planning | Insufficient depth | Use opus for complex analysis |
|
|
64
|
+
| Skipping verification | False completion risk | Always include post-verification phase |
|
package/templates/CLAUDE.md.en
CHANGED
|
@@ -129,6 +129,7 @@ Violation = immediate correction. No exception for "small changes".
|
|
|
129
129
|
| R016 | Continuous Improvement | **ENFORCED** - Update rules when violations occur |
|
|
130
130
|
| R017 | Sync Verification | **ENFORCED** - Verify sync before structural changes |
|
|
131
131
|
| R018 | Agent Teams | **ENFORCED (Conditional)** - Mandatory for qualifying tasks when Agent Teams enabled |
|
|
132
|
+
| R020 | Completion Verification | **ENFORCED** - Verification required before declaring task complete |
|
|
132
133
|
|
|
133
134
|
### SHOULD (Strongly recommended)
|
|
134
135
|
| ID | Rule | Description |
|
|
@@ -157,6 +158,7 @@ Violation = immediate correction. No exception for "small changes".
|
|
|
157
158
|
| `/omcustom:update-external` | Update agents from external sources |
|
|
158
159
|
| `/omcustom:audit-agents` | Audit agent dependencies |
|
|
159
160
|
| `/omcustom:fix-refs` | Fix broken references |
|
|
161
|
+
| `/omcustom:takeover` | Extract canonical spec from existing agent/skill |
|
|
160
162
|
| `/dev-review` | Review code for best practices |
|
|
161
163
|
| `/dev-refactor` | Refactor code |
|
|
162
164
|
| `/memory-save` | Save session context to claude-mem |
|
|
@@ -165,6 +167,7 @@ Violation = immediate correction. No exception for "small changes".
|
|
|
165
167
|
| `/omcustom:npm-publish` | Publish package to npm registry |
|
|
166
168
|
| `/omcustom:npm-version` | Manage semantic versions |
|
|
167
169
|
| `/omcustom:npm-audit` | Audit dependencies |
|
|
170
|
+
| `/omcustom:release-notes` | Generate release notes from git history |
|
|
168
171
|
| `/codex-exec` | Execute Codex CLI prompts |
|
|
169
172
|
| `/optimize-analyze` | Analyze bundle and performance |
|
|
170
173
|
| `/optimize-bundle` | Optimize bundle size |
|
|
@@ -184,9 +187,9 @@ project/
|
|
|
184
187
|
+-- CLAUDE.md # Entry point
|
|
185
188
|
+-- .claude/
|
|
186
189
|
| +-- agents/ # Subagent definitions (44 files)
|
|
187
|
-
| +-- skills/ # Skills (
|
|
188
|
-
| +-- rules/ # Global rules (R000-
|
|
189
|
-
| +-- hooks/ # Hook scripts (
|
|
190
|
+
| +-- skills/ # Skills (74 directories)
|
|
191
|
+
| +-- rules/ # Global rules (R000-R020)
|
|
192
|
+
| +-- hooks/ # Hook scripts (security, validation, HUD)
|
|
190
193
|
| +-- contexts/ # Context files (ecomode)
|
|
191
194
|
+-- guides/ # Reference docs (25 topics)
|
|
192
195
|
```
|
package/templates/CLAUDE.md.ko
CHANGED
|
@@ -129,6 +129,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
129
129
|
| R016 | 지속적 개선 | **강제** - 위반 발생 시 규칙 업데이트 |
|
|
130
130
|
| R017 | 동기화 검증 | **강제** - 구조 변경 전 검증 |
|
|
131
131
|
| R018 | Agent Teams | **강제(조건부)** - Agent Teams 활성화 시 적합한 작업에 필수 사용 |
|
|
132
|
+
| R020 | 완료 검증 | **강제** - 작업 완료 선언 전 검증 필수 |
|
|
132
133
|
|
|
133
134
|
### SHOULD (강력 권장)
|
|
134
135
|
| ID | 규칙 | 설명 |
|
|
@@ -157,6 +158,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
157
158
|
| `/omcustom:update-external` | 외부 소스에서 에이전트 업데이트 |
|
|
158
159
|
| `/omcustom:audit-agents` | 에이전트 의존성 감사 |
|
|
159
160
|
| `/omcustom:fix-refs` | 깨진 참조 수정 |
|
|
161
|
+
| `/omcustom:takeover` | 기존 에이전트/스킬에서 canonical spec 추출 |
|
|
160
162
|
| `/dev-review` | 코드 베스트 프랙티스 리뷰 |
|
|
161
163
|
| `/dev-refactor` | 코드 리팩토링 |
|
|
162
164
|
| `/memory-save` | 세션 컨텍스트를 claude-mem에 저장 |
|
|
@@ -165,6 +167,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
165
167
|
| `/omcustom:npm-publish` | npm 레지스트리에 패키지 배포 |
|
|
166
168
|
| `/omcustom:npm-version` | 시맨틱 버전 관리 |
|
|
167
169
|
| `/omcustom:npm-audit` | 의존성 감사 |
|
|
170
|
+
| `/omcustom:release-notes` | 릴리즈 노트 생성 (git 히스토리 기반) |
|
|
168
171
|
| `/codex-exec` | Codex CLI 프롬프트 실행 |
|
|
169
172
|
| `/optimize-analyze` | 번들 및 성능 분석 |
|
|
170
173
|
| `/optimize-bundle` | 번들 크기 최적화 |
|
|
@@ -184,9 +187,9 @@ project/
|
|
|
184
187
|
+-- CLAUDE.md # 진입점
|
|
185
188
|
+-- .claude/
|
|
186
189
|
| +-- agents/ # 서브에이전트 정의 (44 파일)
|
|
187
|
-
| +-- skills/ # 스킬 (
|
|
188
|
-
| +-- rules/ # 전역 규칙 (R000-
|
|
189
|
-
| +-- hooks/ # 훅 스크립트 (
|
|
190
|
+
| +-- skills/ # 스킬 (74 디렉토리)
|
|
191
|
+
| +-- rules/ # 전역 규칙 (R000-R020)
|
|
192
|
+
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
190
193
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
191
194
|
+-- guides/ # 레퍼런스 문서 (25 토픽)
|
|
192
195
|
```
|
package/templates/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.36.1",
|
|
3
3
|
"lastUpdated": "2026-03-14T00:00:00.000Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"name": "skills",
|
|
19
19
|
"path": ".claude/skills",
|
|
20
20
|
"description": "Reusable skill modules (includes slash commands)",
|
|
21
|
-
"files":
|
|
21
|
+
"files": 74
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"name": "guides",
|