oh-my-customcode 0.59.0 → 0.60.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 +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MUST-agent-design.md +3 -1
- package/templates/.claude/skills/evaluator-optimizer/SKILL.md +56 -0
- package/templates/.claude/skills/professor-triage/SKILL.md +10 -1
- package/templates/.claude/skills/stuck-recovery/SKILL.md +24 -0
- package/templates/.claude/skills/workflow/SKILL.md +8 -8
- package/templates/manifest.json +1 -1
- package/templates/workflows/{omcustom-dev.yaml → auto-dev.yaml} +8 -4
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -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
|
|
@@ -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.
|
|
@@ -156,7 +156,7 @@ Template:
|
|
|
156
156
|
## Pending Actions (Confirmation Required)
|
|
157
157
|
```
|
|
158
158
|
|
|
159
|
-
**5B: Issue comments** — Delegate to mgr-gitnerd to post on each analyzed issue:
|
|
159
|
+
**5B: Issue comments (MANDATORY)** — Every analyzed issue MUST receive a triage comment. This is not optional — even for issues created in the same session or with existing analysis. Skipping comments breaks the triage audit trail. Delegate to mgr-gitnerd to post on each analyzed issue:
|
|
160
160
|
|
|
161
161
|
```
|
|
162
162
|
## 🔬 Professor Triage — Cross-Analysis Result
|
|
@@ -170,6 +170,15 @@ Template:
|
|
|
170
170
|
_Cross-analyzed by `/professor-triage` with {N} related issues_
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
+
### Phase 5C: Comment Verification Gate
|
|
174
|
+
|
|
175
|
+
Before proceeding to Phase 6, verify ALL analyzed issues received comments:
|
|
176
|
+
```bash
|
|
177
|
+
# For each issue NNN in the batch:
|
|
178
|
+
gh issue view NNN --json comments --jq '.comments | map(select(.body | contains("Professor Triage"))) | length'
|
|
179
|
+
# Must be >= 1 for every issue. If any is 0, Phase 5B was skipped — go back and post.
|
|
180
|
+
```
|
|
181
|
+
|
|
173
182
|
### Phase 6: Act
|
|
174
183
|
|
|
175
184
|
Delegate ALL GitHub operations to mgr-gitnerd.
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
package/templates/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# /workflow
|
|
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:
|
|
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
|