oh-my-customcode 0.59.1 → 0.60.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 CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  **[한국어 문서 (Korean)](./README_ko.md)**
15
15
 
16
- 46 agents. 95 skills. 21 rules. One command.
16
+ 46 agents. 97 skills. 21 rules. One command.
17
17
 
18
18
  ```bash
19
19
  npm install -g oh-my-customcode && cd your-project && omcustom init
@@ -146,7 +146,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
146
146
 
147
147
  ---
148
148
 
149
- ### Skills (95)
149
+ ### Skills (97)
150
150
 
151
151
  | Category | Count | Includes |
152
152
  |----------|-------|----------|
@@ -282,7 +282,7 @@ your-project/
282
282
  ├── CLAUDE.md # Entry point
283
283
  ├── .claude/
284
284
  │ ├── agents/ # 46 agent definitions
285
- │ ├── skills/ # 95 skill modules
285
+ │ ├── skills/ # 97 skill modules
286
286
  │ ├── rules/ # 21 governance rules (R000-R021)
287
287
  │ ├── hooks/ # 15 lifecycle hook scripts
288
288
  │ ├── schemas/ # Tool input validation schemas
package/dist/cli/index.js CHANGED
@@ -9325,7 +9325,7 @@ var init_package = __esm(() => {
9325
9325
  workspaces: [
9326
9326
  "packages/*"
9327
9327
  ],
9328
- version: "0.59.1",
9328
+ version: "0.60.1",
9329
9329
  description: "Batteries-included agent harness for Claude Code",
9330
9330
  type: "module",
9331
9331
  bin: {
package/dist/index.js CHANGED
@@ -1672,7 +1672,7 @@ var package_default = {
1672
1672
  workspaces: [
1673
1673
  "packages/*"
1674
1674
  ],
1675
- version: "0.59.1",
1675
+ version: "0.60.1",
1676
1676
  description: "Batteries-included agent harness for Claude Code",
1677
1677
  type: "module",
1678
1678
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.59.1",
6
+ "version": "0.60.1",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -32,6 +32,7 @@ escalation: # Model escalation policy (optional)
32
32
  threshold: 2 # Failures before advisory
33
33
  soul: true # Enable SOUL.md identity injection
34
34
  isolation: worktree | sandbox # worktree = git worktree, sandbox = restricted bash
35
+ sandboxFailIfUnavailable: true # Exit if sandbox unavailable (v2.1.83+)
35
36
  background: true # Run in background
36
37
  maxTurns: 10 # Max conversation turns
37
38
  maxTokens: 100000 # Per-turn token ceiling
@@ -39,6 +40,7 @@ mcpServers: [server-1] # MCP servers available
39
40
  hooks: # Agent-specific hooks
40
41
  PreToolUse:
41
42
  - matcher: "Edit"
43
+ if: "Edit(*.md)" # Conditional filter (permission rule syntax, v2.1.85+)
42
44
  command: "echo hook"
43
45
  permissionMode: bypassPermissions # Permission mode
44
46
  disallowedTools: [Bash] # Tools to disallow
@@ -48,7 +50,7 @@ limitations: # Negative capability declarations
48
50
  domain: backend # backend | frontend | data-engineering | devops | universal
49
51
  ```
50
52
 
51
- > **Note**: `isolation`, `background`, `maxTurns`, `maxTokens`, `mcpServers`, `hooks`, `permissionMode`, `disallowedTools`, `limitations` are supported in Claude Code v2.1.63+. Hook types `PostCompact`, `Elicitation`, `ElicitationResult` require v2.1.76+.
53
+ > **Note**: `isolation`, `background`, `maxTurns`, `maxTokens`, `mcpServers`, `hooks`, `permissionMode`, `disallowedTools`, `limitations` are supported in Claude Code v2.1.63+. Hook types `PostCompact`, `Elicitation`, `ElicitationResult` require v2.1.76+. `CwdChanged`, `FileChanged` hook events and `managed-settings.d/` drop-in directory require v2.1.83+. Conditional `if` field for hooks requires v2.1.85+.
52
54
 
53
55
  <!-- DETAIL: Isolation/Token/Limitations/Escalation details
54
56
  ### Isolation Modes
@@ -25,6 +25,15 @@ Available when `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessag
25
25
 
26
26
  **When Agent Teams is enabled and criteria are met, usage is required.**
27
27
 
28
+ ### Scope: Intra-Session vs Cross-Session
29
+
30
+ | Scope | Tool | Protocol | Use Case |
31
+ |-------|------|----------|----------|
32
+ | Intra-session | `SendMessage` (Agent Teams) | Peer-to-peer within team | Multi-agent collaboration in one session |
33
+ | Cross-session | `send_message` (claude-peers-mcp) | Broker-mediated | Multi-terminal/project coordination |
34
+
35
+ These are distinct mechanisms. Agent Teams `SendMessage` requires `TeamCreate` and operates within a single Claude Code session. claude-peers-mcp `send_message` operates across separate Claude Code processes via a localhost broker.
36
+
28
37
  ## Self-Check (Before Agent Tool)
29
38
 
30
39
  Before using Agent tool for 2+ agent tasks, complete this check:
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: action-validator
3
+ description: Pre-action boundary checking — validates agent tool calls against declared capabilities and task contracts
4
+ scope: core
5
+ user-invocable: false
6
+ ---
7
+
8
+ # Action Validator Skill
9
+
10
+ ## Purpose
11
+
12
+ Advisory pre-action validation layer that checks agent tool calls against declared capabilities, file access scope (R002), and task contracts before execution. Inspired by AutoHarness (Google DeepMind) — enforcing action-space legality at agent boundaries.
13
+
14
+ This skill does NOT block actions (R021 advisory-first model). It emits warnings when agents attempt operations outside their declared scope.
15
+
16
+ ## Validation Checks
17
+
18
+ | Check | What | Against |
19
+ |-------|------|---------|
20
+ | Tool scope | Tool being called | Agent's `tools` frontmatter list |
21
+ | File scope | File path in Write/Edit | R002 file access rules |
22
+ | Domain scope | Target file extension | Agent's `domain` frontmatter |
23
+ | Task contract | Operation type | Task description constraints |
24
+
25
+ ## Advisory Format
26
+
27
+ ```
28
+ --- [Action Validator] Scope warning ---
29
+ Agent: {agent-name}
30
+ Tool: {tool-name}
31
+ Target: {file-path}
32
+ Issue: {description}
33
+ Declared scope: {agent's declared tools/domain}
34
+ 💡 Suggestion: {recommended action}
35
+ ---
36
+ ```
37
+
38
+ ## Integration Points
39
+
40
+ | System | How |
41
+ |--------|-----|
42
+ | PreToolUse hooks | Optional hook to check tool calls (advisory only) |
43
+ | pipeline-guards | Complements pipeline stage gates |
44
+ | adversarial-review | Provides action-space-legality criterion |
45
+ | R002 (Permissions) | Validates against declared file access rules |
46
+ | R010 (Orchestrator) | Orchestrator validates subagent scope claims |
47
+
48
+ ## Policy Cache Pattern
49
+
50
+ For high-repetition agents (e.g., mgr-gitnerd commit workflows), capture validated decision paths as reusable policies:
51
+
52
+ ```yaml
53
+ policy_cache:
54
+ agent: mgr-gitnerd
55
+ action: git-commit
56
+ validated_steps:
57
+ - tool: Bash
58
+ pattern: "git add *"
59
+ verdict: allow
60
+ - tool: Bash
61
+ pattern: "git commit *"
62
+ verdict: allow
63
+ - tool: Bash
64
+ pattern: "git push *"
65
+ verdict: warn_confirm
66
+ ```
67
+
68
+ Policy caching reduces redundant LLM calls for well-understood workflows. Policies are advisory — the orchestrator may override.
69
+
70
+ ## Scope
71
+
72
+ This skill is an advisory layer, not a hard enforcement mechanism:
73
+ - **Does**: Emit warnings, log scope violations, suggest corrections
74
+ - **Does NOT**: Block tool execution, modify agent behavior, override R021
75
+ - **Future**: May integrate with PreToolUse hooks for automated checking (see R021 promotion criteria)
@@ -70,3 +70,11 @@ Fix: Recommended remediation
70
70
  - Complements `dev-review` (best practices) with attacker perspective
71
71
  - Works with `sec-codeql-expert` for pattern-based + logic-based coverage
72
72
  - Can be chained: `dev-review` → `adversarial-review` for complete coverage
73
+ - Works with `action-validator` for action-space legality checking
74
+
75
+ ### Action-Space Legality (AutoHarness Pattern)
76
+
77
+ - [ ] Do agents only call tools within their declared `tools` frontmatter?
78
+ - [ ] Do file operations stay within R002-declared access scope?
79
+ - [ ] Are domain boundaries respected (backend agent not editing frontend files)?
80
+ - [ ] Could an agent's task contract be tightened without losing functionality?
@@ -33,6 +33,27 @@ evaluator-optimizer:
33
33
  max_iterations: 3 # Default, hard cap: 5
34
34
  ```
35
35
 
36
+ ### Pre-Negotiation (Sprint Contract Pattern)
37
+
38
+ Optional phase where generator and evaluator agree on rubric interpretation before the first iteration. Inspired by Anthropic's harness design for long-running applications.
39
+
40
+ ```yaml
41
+ evaluator-optimizer:
42
+ pre_negotiation:
43
+ enabled: true # Default: false
44
+ rounds: 1 # Negotiation rounds (1-2)
45
+ generator:
46
+ agent: fe-design-expert
47
+ ...
48
+ ```
49
+
50
+ When enabled:
51
+ 1. Generator receives the rubric and proposes its interpretation + planned approach
52
+ 2. Evaluator reviews and may adjust rubric weights or add clarifications
53
+ 3. Both proceed with aligned expectations, reducing wasted iterations
54
+
55
+ Use when: tasks requiring 3+ iterations consistently, or when generator-evaluator score disagreements exceed 0.3.
56
+
36
57
  ### Parameter Details
37
58
 
38
59
  | Parameter | Required | Default | Description |
@@ -307,3 +328,38 @@ When ecomode is active (R013), compress output:
307
328
  - The evaluator prompt MUST include the full rubric to ensure consistent scoring
308
329
  - Iteration state (best score, best output) is tracked by the orchestrator
309
330
  - The hard cap of 5 iterations prevents runaway refinement loops
331
+
332
+ ## Domain Examples
333
+
334
+ ### UI Generation (Anti-AI-Slop)
335
+
336
+ For UI/design generation tasks, use weighted rubrics that penalize generic AI patterns:
337
+
338
+ ```yaml
339
+ evaluator-optimizer:
340
+ generator:
341
+ agent: fe-design-expert
342
+ model: sonnet
343
+ evaluator:
344
+ agent: fe-design-expert
345
+ model: opus
346
+ rubric:
347
+ - criterion: originality
348
+ weight: 0.40
349
+ description: "No stock patterns (centered hero + 3-card grid). Unique layout, typography choices, color relationships."
350
+ - criterion: craft
351
+ weight: 0.35
352
+ description: "Intentional spacing, consistent type scale, purposeful color usage. Details that show care."
353
+ - criterion: functionality
354
+ weight: 0.25
355
+ description: "Accessibility (WCAG 2.1 AA), responsive behavior, interaction states."
356
+ quality_gate:
357
+ type: score_threshold
358
+ threshold: 0.85
359
+ pre_negotiation:
360
+ enabled: true
361
+ ```
362
+
363
+ Weight ordering (originality > craft > functionality) follows Anthropic's anti-slop principle: functionality is table stakes, but originality and craft distinguish quality output from generic AI generation.
364
+
365
+ Integration: Works with [impeccable-design](/skills/impeccable-design) skill for design language enforcement.
@@ -114,3 +114,32 @@ OTEL_LOGS_EXPORTER=otlp
114
114
  OTEL_EXPORTER_OTLP_PROTOCOL=grpc
115
115
  OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
116
116
  ```
117
+
118
+ ## HTTP-Level Inspection (Optional)
119
+
120
+ For deeper payload-level debugging beyond aggregated metrics, [Claude Inspector](https://github.com/kangraemin/claude-inspector) provides MITM proxy inspection of Claude Code HTTP traffic.
121
+
122
+ | Aspect | OTel Monitoring (this skill) | Claude Inspector |
123
+ |--------|------------------------------|-----------------|
124
+ | Layer | Application (hooks, stdout) | HTTP (MITM proxy) |
125
+ | Metrics | Aggregated (cost, tokens, duration) | Per-request payload breakdown |
126
+ | Cache visibility | Not available | Prompt Cache hit/miss rates |
127
+ | Sub-agent view | Summary via hooks | Full parent vs sub-agent context comparison |
128
+ | Setup | Built-in (hooks + statusline) | External tool (Homebrew on macOS) |
129
+
130
+ ### When to Use
131
+
132
+ - **OTel monitoring**: Daily operations, cost tracking, performance trends
133
+ - **Claude Inspector**: Debugging specific payload issues, measuring CLAUDE.md token impact, verifying ecomode (R013) effectiveness, profiling sub-agent context inheritance
134
+
135
+ ### Setup
136
+
137
+ ```bash
138
+ # macOS
139
+ brew install kangraemin/tap/claude-inspector
140
+
141
+ # Run proxy
142
+ claude-inspector
143
+ ```
144
+
145
+ Claude Inspector is external to oh-my-customcode and does not require any project configuration changes.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: peer-messaging
3
+ description: Cross-session Claude Code instance messaging via claude-peers-mcp broker
4
+ scope: core
5
+ user-invocable: false
6
+ ---
7
+
8
+ # Peer Messaging Skill
9
+
10
+ ## Purpose
11
+
12
+ Enables cross-session coordination between multiple Claude Code instances through the claude-peers-mcp broker. Complements Agent Teams (R018, intra-session) with inter-session messaging.
13
+
14
+ ## Scope Clarification
15
+
16
+ | Scope | Mechanism | Tools | Use Case |
17
+ |-------|-----------|-------|----------|
18
+ | Intra-session agents | Agent Teams (R018) | TeamCreate, SendMessage | Single session multi-agent collaboration |
19
+ | Cross-session instances | claude-peers-mcp | list_peers, send_message | Multi-terminal/project real-time coordination |
20
+ | Cross-session memory | claude-mem | save_memory, search | Async memory persistence |
21
+
22
+ > **Important**: R018's `SendMessage` and claude-peers-mcp's `send_message` are different tools with different scopes. Do not confuse them.
23
+
24
+ ## MCP Tool Mapping
25
+
26
+ | Tool | Purpose | oh-my-customcode Scenario |
27
+ |------|---------|---------------------------|
28
+ | `list_peers` | Discover active Claude instances | `omcustom:status` system overview |
29
+ | `send_message` | Send message to peer | Cross-project workflow coordination |
30
+ | `set_summary` | Broadcast current task summary | DAG cross-project step sync |
31
+ | `check_messages` | Read incoming messages | Receive coordination signals |
32
+
33
+ ## Use Cases
34
+
35
+ ### Multi-Project Workflow
36
+ Terminal A runs `auto-dev` on project-1; Terminal B works on dependent project-2. Peers coordinate via messages when blocking dependencies are resolved.
37
+
38
+ ### Cross-Project QA
39
+ Share test infrastructure state between projects running concurrent test suites.
40
+
41
+ ### DAG Bridge
42
+ `dag-orchestration` cross-project steps can use peer messaging for synchronization (currently impossible without this tool).
43
+
44
+ ## Setup
45
+
46
+ ```bash
47
+ # Install broker (optional MCP server)
48
+ npm install -g claude-peers-mcp
49
+
50
+ # Add to MCP config
51
+ claude mcp add claude-peers-mcp -- npx claude-peers-mcp
52
+ ```
53
+
54
+ ## Integration
55
+
56
+ - Works with R018 Agent Teams (different scope, complementary)
57
+ - Works with claude-mem (async vs sync messaging)
58
+ - Works with `omcustom:status` (peer discovery)
59
+ - Broker runs on localhost:7899 (SQLite-backed)
@@ -25,6 +25,7 @@ Detects when tasks are stuck in repetitive failure loops and advises recovery st
25
25
  | Model escalation | Agent retry loop | Trigger model-escalation advisory |
26
26
  | Alternative approach | Edit loop detected | Suggest different file/method |
27
27
  | Human intervention | All automated strategies exhausted | Ask user for guidance |
28
+ | Context reset | Long-running task (>30min) or context >80% | Structured handoff: save state to memory, create fresh session with task summary |
28
29
 
29
30
  ## Architecture
30
31
 
@@ -53,3 +54,26 @@ PostToolUse (Edit, Write, Bash, Task) → stuck-detector.sh
53
54
  - Respects R010 (advisory only, orchestrator decides)
54
55
  - Uses same PPID-scoped temp file pattern as other hooks
55
56
  - Works with task-outcome-recorder.sh data when available
57
+
58
+ ## Context Reset Strategy
59
+
60
+ For long-running tasks (>30 minutes) or when context usage exceeds 80%, context reset is preferred over compaction:
61
+
62
+ 1. **Save state**: Write current progress, decisions, and open items to native auto-memory
63
+ 2. **Create handoff**: Generate structured task summary with:
64
+ - Completed steps and their outcomes
65
+ - Current step and its state
66
+ - Remaining steps
67
+ - Key decisions made and their rationale
68
+ 3. **Reset**: Start fresh session with handoff document as input
69
+
70
+ Context reset preserves decision quality by avoiding the information loss inherent in compaction. Based on Anthropic's finding that models experience "context anxiety" — prematurely concluding tasks due to perceived token limits.
71
+
72
+ ### When to Use
73
+
74
+ | Condition | Strategy |
75
+ |-----------|----------|
76
+ | Context < 60% | Continue normally |
77
+ | Context 60-80% | Consider `/compact` |
78
+ | Context > 80% OR duration > 30min | Context reset recommended |
79
+ | Repeated compaction in same session | Context reset required |
@@ -1,20 +1,20 @@
1
1
  ---
2
- name: workflow
3
- description: Invoke YAML-defined workflows by name — /workflow omcustom-dev runs the full pipeline
2
+ name: omcustom:workflow
3
+ description: Invoke YAML-defined workflows by name — /omcustom:workflow auto-dev runs the full pipeline
4
4
  scope: harness
5
5
  user-invocable: true
6
6
  effort: high
7
7
  argument-hint: "<workflow-name> | (no args to list available)"
8
8
  ---
9
9
 
10
- # /workflow — Workflow Invocation
10
+ # /omcustom:workflow — Workflow Invocation
11
11
 
12
12
  ## Usage
13
13
 
14
14
  ```
15
- /workflow omcustom-dev # Run the omcustom-dev workflow
16
- /workflow # List available workflows
17
- /workflow:resume # Resume a halted workflow
15
+ /omcustom:workflow auto-dev # Run the auto-dev workflow
16
+ /omcustom:workflow # List available workflows
17
+ /omcustom:workflow:resume # Resume a halted workflow
18
18
  ```
19
19
 
20
20
  ## Behavior
@@ -24,7 +24,7 @@ argument-hint: "<workflow-name> | (no args to list available)"
24
24
  Scan `workflows/*.yaml` and display:
25
25
  ```
26
26
  Available workflows:
27
- omcustom-dev — verify-done issues release batch: triage → plan → implement → verify → PR
27
+ auto-dev — verify-done issues release batch: triage → plan → implement → verify → PR
28
28
  ```
29
29
 
30
30
  ### Run Mode (with workflow name)
@@ -35,7 +35,7 @@ Available workflows:
35
35
  4. Invoke workflow-runner skill with the loaded definition
36
36
  5. Report completion or failure
37
37
 
38
- ### Resume Mode (/workflow:resume)
38
+ ### Resume Mode (/omcustom:workflow:resume)
39
39
 
40
40
  1. Check for state file: `/tmp/.claude-workflow-*-{PPID}.json`
41
41
  2. If found: show halted workflow name and failed step
@@ -138,7 +138,7 @@ project/
138
138
  +-- CLAUDE.md # 진입점
139
139
  +-- .claude/
140
140
  | +-- agents/ # 서브에이전트 정의 (46 파일)
141
- | +-- skills/ # 스킬 (95 디렉토리)
141
+ | +-- skills/ # 스킬 (97 디렉토리)
142
142
  | +-- rules/ # 전역 규칙 (R000-R021)
143
143
  | +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
144
144
  | +-- contexts/ # 컨텍스트 파일 (ecomode)
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.59.1",
2
+ "version": "0.60.1",
3
3
  "lastUpdated": "2026-03-24T00: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": 95
21
+ "files": 97
22
22
  },
23
23
  {
24
24
  "name": "guides",
@@ -1,8 +1,8 @@
1
- # /workflow:omcustom-dev — Full-auto release pipeline
2
- # Collects verify-done issues → triage → plan → implement → verify → PR
1
+ # /omcustom:workflow auto-dev — Full-auto release pipeline
2
+ # Collects verify-done issues → triage → plan → implement → verify → PR → followup
3
3
 
4
- name: omcustom-dev
5
- description: "verify-done issues release batch: triage → plan → implement → verify → PR"
4
+ name: auto-dev
5
+ description: "verify-done issues release batch: triage → plan → implement → verify → PR → followup"
6
6
  mode: auto
7
7
  error: halt-and-report
8
8
 
@@ -33,3 +33,7 @@ steps:
33
33
  - name: release
34
34
  action: create-pr
35
35
  description: Create release branch and pull request
36
+
37
+ - name: followup
38
+ skill: post-release-followup
39
+ description: Recommend follow-up actions — user chooses to execute now or register as issues