oh-my-customcode 0.165.0 → 0.167.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-teams.md +12 -0
- package/templates/.claude/rules/MUST-completion-verification.md +13 -0
- package/templates/.claude/rules/MUST-parallel-execution.md +7 -1
- package/templates/.claude/rules/SHOULD-hud-statusline.md +2 -0
- package/templates/.claude/skills/pipeline/SKILL.md +1 -1
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -76,6 +76,16 @@ Quick rule: User explicitly preferred plain subagents this session? → use Agen
|
|
|
76
76
|
╚══════════════════════════════════════════════════════════════════╝
|
|
77
77
|
-->
|
|
78
78
|
|
|
79
|
+
### Gate Transparency
|
|
80
|
+
|
|
81
|
+
When the gate resolves to **Agent Tool** for a 3+ agent dispatch (e.g. mechanical disjoint-file editing with no review loop), announce the gate result in one line BEFORE spawning — e.g. `R018 게이트: 3개 disjoint-file 도메인, 리뷰 사이클 없음 → Agent Tool 폴백`. Silently selecting Agent Tool on a 3+ agent batch loses the gate-evaluation audit trail and reads as if the R018/R009 Self-Check #4 gate was skipped.
|
|
82
|
+
|
|
83
|
+
| Anti-pattern | Required |
|
|
84
|
+
|--------------|----------|
|
|
85
|
+
| 3+ 에이전트 병렬 스폰 announce에 게이트 평가 결과 누락 | 스폰 전 한 줄로 게이트 결과 명시 (Agent Tool 폴백 사유 또는 Agent Teams 선택 사유) |
|
|
86
|
+
|
|
87
|
+
Origin: #1293 (Session 110 retrospective, Low).
|
|
88
|
+
|
|
79
89
|
### Spawn Completeness Check
|
|
80
90
|
|
|
81
91
|
All members must be spawned in a single message. Partial spawning needs correction per R018 and R009.
|
|
@@ -331,6 +341,8 @@ Agent Teams member completion MUST be verified by deterministic ground-truth —
|
|
|
331
341
|
|
|
332
342
|
Cross-reference: R020 ("actual outcome ≠ attempt" — verifying that a command ran is not the same as verifying it succeeded).
|
|
333
343
|
|
|
344
|
+
> **CC v2.1.162+**: `claude agents --json` now includes a `waitingFor` field showing what a waiting session is blocked on (e.g. a permission prompt). Use it as an additional deterministic ground-truth signal — a member with a non-empty `waitingFor` is blocked on input (needs unblocking), NOT silently stalled (reassign per stall handling below). This distinguishes the two failure modes the verification is meant to separate.
|
|
345
|
+
|
|
334
346
|
**Stall handling**: When a member shows no task progress within ~2 minutes despite spawn + owner assignment + SendMessage coordination, reassign the work to a standalone Agent (R009) rather than continuing to nudge the stalled member. Stalled Teams members waste tokens on idle polling and delay the overall workflow.
|
|
335
347
|
|
|
336
348
|
Observed instance: v0.159.0 release (session 105) — members assigned to disjoint-file cleanup tasks went idle without executing; deterministic git-diff check exposed the gap; work was reassigned to standalone parallel Agents. References: #1261, #1262.
|
|
@@ -196,6 +196,19 @@ triage-dispatch.yml 실패 원인을 파일 Read 전에 "triaged 라벨 부재 +
|
|
|
196
196
|
|
|
197
197
|
Origin: #1266 ④.
|
|
198
198
|
|
|
199
|
+
### Directory-Context Before Multi-Copy Unification/Deletion
|
|
200
|
+
|
|
201
|
+
다중 사본(동일 파일이 N곳에 존재)을 통일하거나 삭제하기 전, 각 사본이 위치한 **디렉토리 전체 맥락**을 확인한다(`ls`로 형제 파일 파악). 사본 파일 하나만 보고 "orphan"·"stub"으로 특성화하면, 같은 디렉토리의 형제 파일(다른 역할을 가진)이 함께 덮이거나 맥락이 누락된다. Read-Before-Characterize를 파일 단위에서 디렉토리 단위로 확장한 규칙이다.
|
|
202
|
+
|
|
203
|
+
| 금지 | 필수 |
|
|
204
|
+
|------|------|
|
|
205
|
+
| 사본 파일만 보고 "orphan/stub"으로 단정 후 통일/삭제 | 사본이 속한 디렉토리 전체(`ls`)를 확인 — 형제 파일 역할·연계 파악 후 처리 |
|
|
206
|
+
|
|
207
|
+
#### Common Violation (#1290 찐빠 #2, cross-session)
|
|
208
|
+
Session 108에서 `auto-dev.yaml` 4곳을 canonical 통일할 때, repo-root `./workflows/`에 `eraser.yaml`이 공존하는 디렉토리 맥락을 미확인하고 덮었다. Session 109에서 디렉토리 단위 Read-Before-Characterize로 보정(`eraser.yaml` 발견 → #1289 등록, destructive 삭제 회피). 결과는 무해했으나 맥락이 불완전했다.
|
|
209
|
+
|
|
210
|
+
Origin: #1290 (session 109 retrospective).
|
|
211
|
+
|
|
199
212
|
### Degraded-Output Re-Verification Gate (529 / buffering)
|
|
200
213
|
|
|
201
214
|
When tool outputs show degradation signs — 529 errors, duplicated or truncated output, or a Read returning empty on a file that is known non-empty — you MUST re-verify any fact via a deterministic second source BEFORE any destructive or permanent action (recovery-agent dispatch, issue edit, commit, file restore). Do NOT characterize state ("corruption", "오염", "loop") from a single degraded read.
|
|
@@ -30,8 +30,9 @@ Before writing/editing multiple files:
|
|
|
30
30
|
1. Are files independent? → YES: spawn parallel agents
|
|
31
31
|
2. Using Write/Edit sequentially for 2+ files? → parallelize instead
|
|
32
32
|
3. Specialized agent available? → Use it (not general-purpose)
|
|
33
|
-
4. Agent Teams available? → **Check R018 criteria before spawning 2+ agents**
|
|
33
|
+
4. Agent Teams available? → **Check R018 criteria before spawning 2+ agents; for a 3+ agent batch, announce the gate result (Agent Tool fallback reason or Agent Teams choice) — see R018 Self-Check "Gate Transparency"**
|
|
34
34
|
5. Running agent stalled (2x+ duration)? → Spawn independent follow-up tasks immediately
|
|
35
|
+
6. Announced a parallel dispatch in prose? → ALL announced tool calls MUST be in the SAME message as the announcement (announce-execution consistency)
|
|
35
36
|
|
|
36
37
|
### Common Violations to Avoid
|
|
37
38
|
|
|
@@ -42,6 +43,9 @@ Before writing/editing multiple files:
|
|
|
42
43
|
❌ WRONG: Single agent receives massive multi-domain prompt (>5000 tokens, e.g., M2 plan with 12 tasks across 7 areas)
|
|
43
44
|
→ Latency timeout, user cancellation, context waste, no review loop
|
|
44
45
|
✓ CORRECT: Pre-decompose by domain, spawn parallel agents per area (R009) or use Agent Teams (R018)
|
|
46
|
+
|
|
47
|
+
❌ WRONG: Announce "milestone 생성 + 구조 확인 병렬" but only dispatch one tool; the other runs next turn (announce-execution mismatch)
|
|
48
|
+
✓ CORRECT: When announcing N parallel tools, include ALL N tool calls in the SAME message as the announcement
|
|
45
49
|
```
|
|
46
50
|
|
|
47
51
|
> **Token threshold heuristic**: When a delegated agent prompt exceeds ~5000 tokens or spans 3+ unrelated domains, decompose by domain and spawn parallel agents. See R018 for Agent Teams criteria when review cycles are needed. Reference: #1085.
|
|
@@ -64,6 +68,8 @@ Before writing/editing multiple files:
|
|
|
64
68
|
|
|
65
69
|
> **Agent Teams partial spawn** → See R018 (MUST-agent-teams.md) "Spawn Completeness Check".
|
|
66
70
|
|
|
71
|
+
> **v2.1.161+**: Parallel tool calls in a single batch are now independent — a failed Bash command no longer cancels the other calls in the same batch; each tool returns its own result. This strengthens R009 batching: one failing call in a parallel dispatch no longer aborts its siblings, so independent work bundled in the same message completes regardless of a single failure. Lowers the safety cost of the announce-execution consistency self-check (#6).
|
|
72
|
+
|
|
67
73
|
## Execution Rules
|
|
68
74
|
|
|
69
75
|
| Rule | Detail |
|
|
@@ -19,6 +19,8 @@ Format: `─── [Spawn] {subagent_type}:{model} | {description} ───`
|
|
|
19
19
|
|
|
20
20
|
> **v2.1.157+**: `tool_decision` telemetry events now include `tool_parameters` (bash commands, MCP/skill names) when `OTEL_LOG_TOOL_DETAILS=1`. Complements R012 observability — enables per-tool parameter tracking in monitoring dashboards. See `monitoring-setup` skill.
|
|
21
21
|
|
|
22
|
+
> **v2.1.161+**: `OTEL_RESOURCE_ATTRIBUTES` values are now emitted as labels on metric datapoints — usage metrics can be sliced by custom dimensions (e.g., team, repo). Extends R012 observability from per-tool parameters (v2.1.157) to per-dimension metric slicing; configure via the `monitoring-setup` skill's `OTEL_RESOURCE_ATTRIBUTES` env. Separately, `claude agents` rows now show `done/total` progress before the detail when work is fanned out, and peek surfaces the longest-running item — complements the HUD parallel-spawn display and R009 `[N]` correlation.
|
|
23
|
+
|
|
22
24
|
<!-- DETAIL: HUD Events full spec
|
|
23
25
|
### When to Display: Multi-step tasks, parallel execution, long-running operations. Skip for single brief operations.
|
|
24
26
|
### Parallel Display:
|
|
@@ -152,7 +152,7 @@ The `auto-dev.yaml` (and other workflow YAML files) exist in **4 locations**. On
|
|
|
152
152
|
**Key rules:**
|
|
153
153
|
- The runtime source is `.claude/skills/pipeline/workflows/` (skill base dir). Do NOT confuse with repo-root `workflows/`.
|
|
154
154
|
- When modifying any workflow YAML, update **all applicable mirrors** to prevent drift. `verify-template-sync.sh` (#1286) detects drift automatically on CI.
|
|
155
|
-
- Repo-root `workflows/` is a legacy `/omcustom:workflow` remnant —
|
|
155
|
+
- Repo-root `workflows/` is a legacy `/omcustom:workflow` remnant. It contains `eraser.yaml`, **deprecated as of v0.167.0 (#1289)** — retained but unmaintained: its ARCHITECTURE.md-sync function moved to the release workflow + validate-docs, and its diagram generation to the `eraser-diagrams` plugin skill. Not reachable via `/pipeline`. Do not delete without checking for other references.
|
|
156
156
|
|
|
157
157
|
## Error Handling
|
|
158
158
|
|
package/templates/manifest.json
CHANGED