oh-my-customcode 0.147.0 → 0.149.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/dist/cli/index.js CHANGED
@@ -2334,7 +2334,7 @@ var init_package = __esm(() => {
2334
2334
  workspaces: [
2335
2335
  "packages/*"
2336
2336
  ],
2337
- version: "0.147.0",
2337
+ version: "0.149.0",
2338
2338
  description: "Batteries-included agent harness for Claude Code",
2339
2339
  type: "module",
2340
2340
  bin: {
package/dist/index.js CHANGED
@@ -2014,7 +2014,7 @@ var package_default = {
2014
2014
  workspaces: [
2015
2015
  "packages/*"
2016
2016
  ],
2017
- version: "0.147.0",
2017
+ version: "0.149.0",
2018
2018
  description: "Batteries-included agent harness for Claude Code",
2019
2019
  type: "module",
2020
2020
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.147.0",
6
+ "version": "0.149.0",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -185,6 +185,16 @@
185
185
  }
186
186
  ],
187
187
  "description": "Auto-detect and fix previous session issues at start (#838)"
188
+ },
189
+ {
190
+ "matcher": "*",
191
+ "hooks": [
192
+ {
193
+ "type": "command",
194
+ "command": "bash .claude/hooks/scripts/plugin-cache-check.sh"
195
+ }
196
+ ],
197
+ "description": "Advisory check for plugin cache directories missing node_modules (#1207)"
188
198
  }
189
199
  ],
190
200
  "UserPromptSubmit": [
@@ -0,0 +1,35 @@
1
+ #!/bin/bash
2
+ # plugin-cache-check.sh — SessionStart advisory hook
3
+ # Detects shared plugin caches with package.json but missing node_modules.
4
+ # Always exit 0 (non-blocking). Output advisory to stderr only.
5
+ # Issue: #1207 — claude-mem v13.3.0 plugin node_modules missing (zod/v3 module error)
6
+
7
+ set -euo pipefail
8
+
9
+ # Read and pass stdin through unchanged
10
+ input=$(cat)
11
+
12
+ PLUGIN_CACHE="${HOME}/.claude/shared-plugins/cache"
13
+
14
+ if [ ! -d "$PLUGIN_CACHE" ]; then
15
+ echo "$input"
16
+ exit 0
17
+ fi
18
+
19
+ missing=()
20
+ while IFS= read -r pkg; do
21
+ dir=$(dirname "$pkg")
22
+ if [ ! -d "$dir/node_modules" ]; then
23
+ missing+=("$dir")
24
+ fi
25
+ done < <(find "$PLUGIN_CACHE" -maxdepth 4 -name package.json 2>/dev/null)
26
+
27
+ if [ ${#missing[@]} -gt 0 ]; then
28
+ echo "[Advisory] Plugin cache missing node_modules (run \`(cd <dir> && bun install)\` per directory):" >&2
29
+ for d in "${missing[@]}"; do
30
+ echo " - $d" >&2
31
+ done
32
+ fi
33
+
34
+ echo "$input"
35
+ exit 0
@@ -38,14 +38,18 @@ These are distinct mechanisms. Agent Teams `SendMessage` requires `TeamCreate` a
38
38
  ## Self-Check (Before Agent Tool)
39
39
 
40
40
  Before using Agent tool for 2+ agent tasks, complete this check:
41
- Quick rule: 3+ agents OR review cycle → use Agent Teams. Sequential deps / scaffolding → Agent Tool. 2+ issues in same batch → prefer Agent Teams.
41
+ Quick rule: User explicitly preferred plain subagents this session? → use Agent Tool (R000 user instructions > R018). Otherwise: 3+ agents OR review cycle → use Agent Teams. Sequential deps / scaffolding → Agent Tool. 2+ issues in same batch → prefer Agent Teams.
42
42
 
43
43
  <!-- DETAIL: Self-Check (Before Agent Tool)
44
44
  ╔══════════════════════════════════════════════════════════════════╗
45
45
  ║ BEFORE USING Agent TOOL FOR 2+ AGENTS: ║
46
46
  ║ ║
47
+ ║ 0. Has user explicitly preferred plain subagents this session? ║
48
+ ║ YES → Use Agent tool (R000 user instructions > R018) ║
49
+ ║ NO → Continue to #1 ║
50
+ ║ ║
47
51
  ║ 1. Is Agent Teams available? ║
48
- ║ YES → check criteria #2-#4
52
+ ║ YES → check criteria #2-#5
49
53
  ║ NO → Proceed with Agent tool ║
50
54
  ║ ║
51
55
  ║ 2. Will 3+ agents be involved? ║
@@ -305,3 +309,22 @@ Agent Teams actively preferred for qualifying collaborative tasks. Use Agent too
305
309
  Do NOT avoid Agent Teams solely for cost reasons when criteria are met.
306
310
 
307
311
  **Active preference rule**: When Agent Teams is available, default to using it for any multi-step or multi-issue work. Only fall back to Agent tool for truly simple, single-issue tasks with no verification needs.
312
+
313
+ ## Member TaskUpdate Discipline
314
+
315
+ Agent Teams 멤버는 long-running 작업 중 진행 상태를 TaskUpdate 로 명시적으로 알려야 한다. 침묵은 코디네이터가 죽었거나 멤버가 막혔다고 오인하게 만든다.
316
+
317
+ | 시점 | 호출 |
318
+ |------|------|
319
+ | 작업 시작 | TaskUpdate(taskId, status: "in_progress") |
320
+ | 의미 있는 진행 (≥30s 분기/체크포인트) | TaskUpdate(taskId, description 업데이트 또는 메타데이터) |
321
+ | 완료 | TaskUpdate(taskId, status: "completed") |
322
+ | 차단 시 | TaskUpdate(taskId, description: 차단 사유) — 그 후 SendMessage |
323
+
324
+ ### Common Violations
325
+
326
+ - 30초 이상 작업하면서 in_progress 미설정 → 다른 멤버가 task 를 claim 시도해 충돌
327
+ - 완료 후 status 미갱신 → 후속 작업이 영원히 blocked
328
+ - 차단 사유를 SendMessage 로만 보내고 task description 업데이트 누락 → TaskList 만 보는 멤버는 사유를 모름
329
+
330
+ Reference issue: #1087.
@@ -33,6 +33,7 @@ Update the relevant rule rather than just acknowledging the violation.
33
33
  | Process gap (workflow hole) | ✅ | ✅ | ✅ | ⚠️ (패턴 3회 이상 반복 시) |
34
34
  | Repeatable system bug | — | ✅ | ✅ | ⚠️ (수정이 구조적일 경우, 일회성 아닐 때) |
35
35
  | Agent selection failure (wrong agent routed) | — | ✅ | — | ✅ (라우팅 스킬 업데이트 후보) |
36
+ | External repo convention miss | ✅ | ✅ | — | ⚠️ (3회 이상 반복 시) |
36
37
 
37
38
  **Skill Promotion**: feedback memory가 동일 패턴으로 3회 이상 반복되면 "failure pattern"으로 승격. skill-extractor의 `--mode failure` 플래그로 스킬 후보 분석 가능 (Skillify 내재화, #972).
38
39
 
@@ -50,7 +51,36 @@ When repeating agent failures or suboptimal routing is detected:
50
51
 
51
52
  This connects R016's continuous improvement loop with the adaptive-harness skill's learning capability.
52
53
 
53
- ## Anti-Patterns 4 patterns: "I'll update later", "one-time exception", "doesn't cover this", "finish task first". See table via Read tool.
54
+ ## External Repo Contribution Pre-Check
55
+
56
+ Before starting work on contributing to an external repository (skill submission, agent contribution, plugin development), MUST read these files in the target repo FIRST round:
57
+
58
+ | File | Purpose |
59
+ |------|---------|
60
+ | `CONTRIBUTING.md` | Submission rules, PR conventions |
61
+ | `AGENTS.md` | Agent contribution guide (if applicable) |
62
+ | `docs/adding-a-*.md` | Domain-specific add guide (e.g., `adding-a-skill.md`) |
63
+ | Domain-specific checklist | Frontmatter conventions, metadata enums |
64
+ | `package.json` scripts | Validation commands (e.g., `npm run ci`) |
65
+
66
+ ### Self-Check
67
+
68
+ Before first implementation commit on external contribution:
69
+ - [ ] Read CONTRIBUTING / AGENTS / skill-checklist
70
+ - [ ] Identified frontmatter convention + metadata enums
71
+ - [ ] Identified validation commands
72
+ - [ ] Confirmed domain fit (does this contribution match the target repo's domain?)
73
+
74
+ ### Common Violation
75
+
76
+ ```
77
+ ❌ WRONG: Start implementation → discover frontmatter convention mid-session → rewrite
78
+ ✓ CORRECT: First round read CONTRIBUTING/AGENTS → identify conventions → then implement
79
+ ```
80
+
81
+ Reference issues: #1188 item #5, #1188 item #7, #1198 item #5.
82
+
83
+ ## Anti-Patterns — 5 patterns: "I'll update later", "one-time exception", "doesn't cover this", "finish task first", "calibration during action-oriented tone". See table via Read tool.
54
84
 
55
85
  <!-- DETAIL: Anti-Patterns
56
86
  | Anti-Pattern | Why It's Wrong | Correct Action |
@@ -59,6 +89,7 @@ This connects R016's continuous improvement loop with the adaptive-harness skill
59
89
  | "This is a one-time exception" | Exceptions become patterns | If the rule is wrong, fix it; if it's right, follow it |
60
90
  | "The rule doesn't cover this case" | Missing coverage = rule gap | Add the case to the rule immediately |
61
91
  | "Let me finish the task first" | Rule violations compound | Fix rule first (5 min), then continue (prevents N future violations) |
92
+ | "Calibration/humility during action-oriented tone (auto mode, ㄱㄱ, 계속해)" | Self-questioning wastes time when user signals action; action-mode preempts meta-reflection | Defer calibration to post-task feedback memory; respond with short action confirmation |
62
93
  -->
63
94
 
64
95
  ## Timing — Rule updates MUST happen before continuing original task, in the same session.
@@ -351,7 +351,7 @@ MCP tools (claude-mem, episodic-memory) are **orchestrator-scoped** and not inhe
351
351
 
352
352
  ### Session-End Self-Check (MANDATORY)
353
353
 
354
- (1) sys-memory-keeper updated MEMORY.md? (2) claude-mem save attempted? Both required before confirming to user. See full self-check via Read tool.
354
+ (1) sys-memory-keeper updated MEMORY.md? (2) claude-mem save attempted? (3) If `omcustom-feedback` skill is active, prompt user to trigger it? All three required before confirming to user. See full self-check via Read tool.
355
355
 
356
356
  <!-- DETAIL: Session-End Self-Check (MANDATORY)
357
357
  ```
@@ -366,10 +366,15 @@ MCP tools (claude-mem, episodic-memory) are **orchestrator-scoped** and not inhe
366
366
  ║ YES → Continue (even if it failed) ║
367
367
  ║ NO → ToolSearch + save now ║
368
368
  ║ ║
369
+ ║ 3. Is omcustom-feedback skill available in this project? ║
370
+ ║ YES → Ask user: "이번 세션 피드백을 omcustom-feedback로 ║
371
+ ║ 기록하시겠습니까?" — accept skip ║
372
+ ║ NO → Skip ║
373
+ ║ ║
369
374
  ║ Note: episodic-memory auto-indexes conversations after session ║
370
375
  ║ ends. No manual action needed — do NOT search as "verification" ║
371
376
  ║ ║
372
- BOTH steps must be completed before confirming to user.
377
+ ALL steps must be completed before confirming to user.
373
378
  ║ "Attempted" means called the tool — failure is OK, skipping ║
374
379
  ║ is NOT. ║
375
380
  ╚══════════════════════════════════════════════════════════════════╝
@@ -413,7 +418,8 @@ Phase 1 COEXIST 기간 중 세션 종료 시:
413
418
  1. sys-memory-keeper가 MEMORY.md 갱신? → YES: 계속
414
419
  2. claude-mem 저장 시도? → YES (기존 항목)
415
420
  3. AgentMemory 저장 시도? → YES (COEXIST 추가)
416
- 단계 모두 완료 사용자에게 확인. 하나 실패해도 비차단.
421
+ 4. omcustom-feedback 권유? YES (활성 시) / 스킵 (비활성 시)
422
+ 네 단계 모두 완료 후 사용자에게 확인. 둘 중 하나 실패해도 비차단.
417
423
 
418
424
  ### Phase 2 진입 전 필수 조건
419
425
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.147.0",
2
+ "version": "0.149.0",
3
3
  "lastUpdated": "2026-05-20T00:00:00.000Z",
4
4
  "omcustomMinClaudeCode": "2.1.121",
5
5
  "omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",