oh-my-customcode 2.0.5 → 2.0.6

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
@@ -335,7 +335,7 @@ var init_package = __esm(() => {
335
335
  workspaces: [
336
336
  "packages/*"
337
337
  ],
338
- version: "2.0.5",
338
+ version: "2.0.6",
339
339
  description: "Batteries-included agent harness for Claude Code",
340
340
  type: "module",
341
341
  bin: {
package/dist/index.js CHANGED
@@ -2906,7 +2906,7 @@ var package_default = {
2906
2906
  workspaces: [
2907
2907
  "packages/*"
2908
2908
  ],
2909
- version: "2.0.5",
2909
+ version: "2.0.6",
2910
2910
  description: "Batteries-included agent harness for Claude Code",
2911
2911
  type: "module",
2912
2912
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "2.0.5",
6
+ "version": "2.0.6",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -4,7 +4,7 @@ set -euo pipefail
4
4
  # Auto-Continue Guard
5
5
  # Trigger: SubagentStop
6
6
  # Purpose: Count consecutive subagent completions and warn when auto-continue limit reached
7
- # Protocol: stdin JSON -> count check -> stdout pass-through, exit 0 always (R021)
7
+ # Protocol: stdin JSON -> count check -> stdout pass-through, the only explicit exit is exit 0 (R021); under set -u a corrupt counter file can exit 1 (non-blocking for SubagentStop)
8
8
 
9
9
  input=$(cat)
10
10
 
@@ -227,6 +227,10 @@ JQ_LAST_TURN='
227
227
  split("\n")
228
228
  | map(select(length > 0) | (fromjson? // empty))
229
229
  | map(select((.isSidechain // false) != true))
230
+ # (#1876) api-request-blob records carry a copy of the request message (role=assistant/user,
231
+ # no isSidechain) — they are NOT conversation lines. Left in, a trailing assistant blob is picked
232
+ # as $last and double-counts tool_use/announce blocks, and a user blob acts as a turn boundary.
233
+ | map(select((.type? // "") != "api-request-blob"))
230
234
  | . as $L
231
235
  | ($L | length) as $n
232
236
  | [ range(0; $n) | select($L[.].message.role? == "assistant") ] as $ai
@@ -167,6 +167,9 @@ JQ_REFLECT='
167
167
  split("\n")
168
168
  | map(select(length > 0) | (fromjson? // empty))
169
169
  | map(select((.isSidechain // false) != true))
170
+ # (#1876) api-request-blob records are request copies, not conversation lines — same filter as
171
+ # r007-r008-drift-advisor.sh (shared verdict; fixing one side only re-contaminates).
172
+ | map(select((.type? // "") != "api-request-blob"))
170
173
  | [ foreach .[] as $l (0;
171
174
  (if ($l.message.role? == "user")
172
175
  and ( (($l.message.content | type) == "string")
@@ -457,7 +457,7 @@ Optional per-agent identity layer. `soul: true` in frontmatter enables personali
457
457
 
458
458
  ## Artifact Output Convention
459
459
 
460
- Skills persist output to `.claude/outputs/sessions/{YYYY-MM-DD}/{skill-name}-{HHmmss}.md`. Opt-in, git-untracked. Final subagent writes (R010). Observed (#1858, CC 2.1.296/2.1.310): a subagent Write of a report-named file (`report-*.md`) was refused; trigger unmeasured [가설]. On refusal the subagent returns the content as text and reports the refusal; if a downstream agent needs a file, the orchestrator delegates a separate writer with a filename outside report/summary/findings/analysis names [가설]. The orchestrator confirms every file deliverable with its own `ls -la` (stricter than auto-dev.yaml's agent-reported `ls -la`). <!-- DETAIL: #1858 measurement (CC 2.1.310, 2026-10-25, mgr-updater subagent, scratchpad dir): Write `report-probe.md` → refused "Subagents should return findings as text, not write report files. Include this content in your final response instead."; `homework-probe.md` and `result-probe.md` → created; `ls -la` showed only the latter two. Trigger observed for a report-named file; whether filename, path, or content decides is unmeasured [가설]. 2.1.296 also saw a subagent falsely report a refused write as success, hence the orchestrator `ls -la` check. -->
460
+ Skills persist output to `.claude/outputs/sessions/{YYYY-MM-DD}/{skill-name}-{HHmmss}.md`. Opt-in, git-untracked. Final subagent writes (R010). Observed (#1858, CC 2.1.296/2.1.310): a subagent Write of a report-named file (`report-*.md`) was refused; trigger unmeasured [가설]. On refusal the subagent returns the content as text and reports the refusal; if a downstream agent needs a file, the orchestrator delegates a separate writer with a filename outside report/summary/findings/analysis names [가설]. The orchestrator confirms every file deliverable with its own `ls -la`. <!-- DETAIL: #1858 measurement (CC 2.1.310, 2026-10-25, mgr-updater subagent, scratchpad dir): Write `report-probe.md` → refused "Subagents should return findings as text, not write report files. Include this content in your final response instead."; `homework-probe.md` and `result-probe.md` → created; `ls -la` showed only the latter two. Trigger observed for a report-named file; whether filename, path, or content decides is unmeasured [가설]. 2.1.296 also saw a subagent falsely report a refused write as success, hence the orchestrator `ls -la` check. -->
461
461
 
462
462
  ### Sensitive Path Handling
463
463
 
@@ -89,9 +89,9 @@ byte_dump=$(mktemp /tmp/omcustom-gh-byte-dump.XXXXXX) || exit 1
89
89
  trap 'command rm -f -- "$byte_dump"' 0
90
90
  trap 'exit 1' HUP INT TERM
91
91
  check_file() {
92
- [ -f "$1" ] || return 1
93
- command od -A n -v -t u1 "$1" > "$byte_dump" || return 1
94
- command awk -v kind="$2" '
92
+ [ -f "${1}" ] || return 1
93
+ command od -A n -v -t u1 "${1}" > "$byte_dump" || return 1
94
+ command awk -v kind="${2}" '
95
95
  { for (i = 1; i <= NF; i++) {
96
96
  b = $i + 0; n++;
97
97
  if (b == 0) bad = 1;
@@ -183,7 +183,7 @@ Each iteration operates under full project rules — no relaxation because FSD i
183
183
  | R015 (intent persistence) | If user explicitly defers a specific PR this session, honor that deferral — do not retry it. |
184
184
  | R017 (sync verification) | mgr-sauron passes required before any commit. |
185
185
  | R020 (completion verification) | Each release verified via `npm view`, `gh release view`, closed issues before `[Done]`. PR merges verified via `gh pr view` ground-truth before declaring iteration complete. |
186
- | cost-cap advisory (`cost-cap-advisor.sh`, Conversation Block) | FSD는 사용자가 명시 호출한 다중 릴리즈 루프라 세션 비용이 상한(기본 $5)을 필연적으로 넘는다. advisory 발화는 루프를 멈추는 신호가 아니며, 오케스트레이터는 발화 사실과 누적 비용을 반복 경계(homework 게이트)에서 사용자에게 고지한다. 상한을 올리려면 `CLAUDE_COST_CAP`(v1.1.61 세션 실측: 착수 직후 $5.38에서 발화). |
186
+ | cost-cap advisory (`cost-cap-advisor.sh`, Conversation Block) | FSD는 사용자가 명시 호출한 다중 릴리즈 루프라 세션 비용이 상한(기본 USD 5)을 필연적으로 넘는다. advisory 발화는 루프를 멈추는 신호가 아니며, 오케스트레이터는 발화 사실과 누적 비용을 반복 경계(homework 게이트)에서 사용자에게 고지한다. 상한을 올리려면 `CLAUDE_COST_CAP`(v1.1.61 세션 실측: 착수 직후 USD 5.38에서 발화). |
187
187
 
188
188
  `/homework` runs as a **retrospective gate** between iterations — findings go through `omcustom-feedback`'s Phase 4A confirmation gate. The loop does NOT skip homework on the grounds that it is "automated". If homework requires user confirmation (e.g., to file a feedback issue), the loop pauses and waits.
189
189
 
@@ -241,7 +241,7 @@ That session ran 2 iterations (v0.177.0 and v0.178.0) before converging with 0 e
241
241
  | Skill / Rule | Role |
242
242
  |--------------|------|
243
243
  | `goal` | Disciplined goal-to-execution wrapper — objective parse, gap detection, R020 verification |
244
- | `omcustom-loop` | SubagentStop command hooks (outcome recording and advisories only) — no orchestrator-workflow continuation; these hooks do not wake an idle model (no `asyncRewake` configured in `.claude/hooks/hooks.json` or `.claude/settings.json`) and `auto-continue-guard.sh` has no exit-2 path and its stdout carries no `decision` field, so it never blocks |
244
+ | `omcustom-loop` | SubagentStop command hooks (outcome recording and advisories only) — no orchestrator-workflow continuation; these hooks do not wake an idle model (no `asyncRewake` configured in `.claude/hooks/hooks.json` or `.claude/settings.json`) and `auto-continue-guard.sh` has no `exit 2` statement (its only explicit exit is `exit 0`), echoes the payload, and the CC 2.1.310 SubagentStop payload has no top-level `decision`/`continue` key (#1880 L2), so it does not block |
245
245
  | `pipeline` | `/pipeline auto-dev` — the core release pipeline per iteration |
246
246
  | `homework` | Retrospective 찐빠 audit gate per iteration |
247
247
  | `mgr-gitnerd` | PR merge operations — all open PR merges delegated here (R010) |
@@ -33,7 +33,7 @@ eliminating the external CronJob dependency for user-invoked runs.
33
33
  2. Agent evaluates each title against oh-my-customcode's domain (see prompt template below)
34
34
  3. Returns relevance score (0–100) and a 1-line reason for each item
35
35
  4. Threshold: ≥ 60 passes to Phase 3 (configurable via `--threshold` or `HADA_SCOUT_THRESHOLD`)
36
- 5. Cost: ~$0.01–0.05 for 50 items
36
+ 5. Cost: ~USD 0.01–0.05 for 50 items
37
37
 
38
38
  ### Phase 3 — Scout Dispatch
39
39
 
@@ -105,9 +105,9 @@ Items:
105
105
 
106
106
  | Stage | Model | Estimated Cost |
107
107
  |-------|-------|----------------|
108
- | Pre-scout (Phase 2) | haiku | ~$0.01–0.05 per run (50 items) |
109
- | Full scout (Phase 3) | sonnet | ~$0.5–1.5 per item, max 5 per run |
110
- | Total max per invocation | — | ~$8 |
108
+ | Pre-scout (Phase 2) | haiku | ~USD 0.01–0.05 per run (50 items) |
109
+ | Full scout (Phase 3) | sonnet | ~USD 0.5–1.5 per item, max 5 per run |
110
+ | Total max per invocation | — | ~USD 8 |
111
111
 
112
112
  ## Environment Variables
113
113
 
@@ -135,7 +135,7 @@ Items:
135
135
  | Filtering | Regex keyword match | LLM relevance scoring (haiku) |
136
136
  | Invocation | External CronJob only | User-invocable `/hada-scout` + CronJob |
137
137
  | Precision | Low (keyword false positives) | High (context-aware scoring) |
138
- | Cost per scan | $0 (regex) + $2.5–7.5 (/scout) | $0.05 (pre-scout) + $2.5–7.5 (/scout) |
138
+ | Cost per scan | USD 0 (regex) + USD 2.5–7.5 (/scout) | USD 0.05 (pre-scout) + USD 2.5–7.5 (/scout) |
139
139
  | False positive rate | ~30–40% | ~5–10% |
140
140
  | Scope | `package` | `core` |
141
141
 
@@ -151,9 +151,9 @@ byte_dump=$(mktemp /tmp/omcustom-gh-byte-dump.XXXXXX) || exit 1
151
151
  trap 'command rm -f -- "$byte_dump"' 0
152
152
  trap 'exit 1' HUP INT TERM
153
153
  check_file() {
154
- [ -f "$1" ] || return 1
155
- command od -A n -v -t u1 "$1" > "$byte_dump" || return 1
156
- command awk -v kind="$2" '
154
+ [ -f "${1}" ] || return 1
155
+ command od -A n -v -t u1 "${1}" > "$byte_dump" || return 1
156
+ command awk -v kind="${2}" '
157
157
  { for (i = 1; i <= NF; i++) {
158
158
  b = $i + 0; n++;
159
159
  if (b == 0) bad = 1;
@@ -21,13 +21,13 @@ When background subagents complete, `SubagentStop` command hooks record outcomes
21
21
 
22
22
  ## Consecutive-Completion Advisory
23
23
 
24
- - **Consecutive-completion counter**: `auto-continue-guard.sh` counts SubagentStop events (counter resets after 60s idle); from the 4th completion onward within the window (count >= 4) it prints a stderr line "limit (3) reached. Pausing." (human-visible only, not a model-visible signal; among these five SubagentStop hooks only `r007-r008-drift-advisor.sh` uses `additionalContext`) and has no exit-2 path and its stdout carries no `decision` field, so it never blocks
24
+ - **Consecutive-completion counter**: `auto-continue-guard.sh` counts SubagentStop events (counter resets after 60s idle); from the 4th completion onward within the window (count >= 4) it prints a stderr line "limit (3) reached. Pausing." (human-visible only, not a model-visible signal; among these five SubagentStop hooks only `r007-r008-drift-advisor.sh` uses `additionalContext`) and its script contains no `exit 2` statement (its only explicit exit is `exit 0`); it echoes the input payload to stdout, and the CC 2.1.310 SubagentStop payload has no top-level `decision`/`continue` key (measured by a reviewer from the binary's payload builder), so it does not block
25
25
  - **stuck-detector integration**: If the same action repeats 3+ times, the independent PostToolUse stuck-detector hook intervenes
26
26
  - **cost-cap-advisor**: Cost monitoring is independent of these hooks
27
27
 
28
28
  ## Configuration
29
29
 
30
- The hooks are configured in `.claude/hooks/hooks.json` under `SubagentStop`. All five hooks are `type: command` and advisory (none has an exit-2 path or emits a `decision`/`continue` field outside comments, so they never block; grep of the five scripts for `exit 2`, `"decision"`, `decision:`, `"continue"` hit only comments in `r007-r008-drift-advisor.sh`).
30
+ The hooks are configured in `.claude/hooks/hooks.json` under `SubagentStop`. All five hooks are `type: command` and advisory (none contains an `exit 2` statement or emits a `decision`/`continue` field outside comments, so none blocks; the grep pattern covered `exit 2`, `"decision"`, `decision:`, `"continue"` and hit only comments in `r007-r008-drift-advisor.sh`. Four of the five hooks echo the CC payload to stdout, which carries no top-level `decision`/`continue` key in CC 2.1.310. The drift advisor's `additionalContext` makes the stopping subagent continue its own turn; that continuation is not a block).
31
31
 
32
32
  ## Limitations
33
33
 
@@ -38,7 +38,7 @@ The hooks are configured in `.claude/hooks/hooks.json` under `SubagentStop`. All
38
38
  ## Usage
39
39
 
40
40
  ```bash
41
- /omcustom-loop # Skill entry point (no status command exists; the consecutive-completion counter lives in `/tmp/.claude-loop-count-${PPID}`)
41
+ /omcustom-loop # Skill entry point (no status command exists; the consecutive-completion counter lives in /tmp/.claude-loop-count-${PPID})
42
42
  ```
43
43
 
44
44
  The hooks are active by default: `.claude/hooks/hooks.json` is the source, and Claude Code loads the generated `.claude/settings.json` in this repo (R021); installed projects get the wiring merged into `.claude/settings.local.json` when the hooks component is installed (`src/core/installer.ts` returns early if `hooks.json` is absent). No explicit activation needed.
@@ -1009,7 +1009,7 @@ steps:
1009
1009
  찐빠 #3).
1010
1010
  - Delegations that create files, binaries, worktrees, or branches (artifact-creating
1011
1011
  delegations only — text-only edits are excluded) MUST include measured output in their
1012
- completion report — `file <bin>` for binaries, `ls -la <path>` for created paths, `git
1012
+ completion report — `file <bin>` for binaries, `ls -la <path>` for created paths (the orchestrator re-runs `ls -la` itself, R006 #1858), `git
1013
1013
  worktree list` for worktrees, `git branch --list` for branches, as applicable — and the
1014
1014
  orchestrator MUST confirm architecture/path from that measured output before using the
1015
1015
  artifact, not from the agent's self-report alone (R020 Subagent Self-Report
@@ -97,9 +97,9 @@ byte_dump=$(mktemp /tmp/omcustom-gh-byte-dump.XXXXXX) || exit 1
97
97
  trap 'command rm -f -- "$byte_dump"' 0
98
98
  trap 'exit 1' HUP INT TERM
99
99
  check_file() {
100
- [ -f "$1" ] || return 1
101
- command od -A n -v -t u1 "$1" > "$byte_dump" || return 1
102
- command awk -v kind="$2" '
100
+ [ -f "${1}" ] || return 1
101
+ command od -A n -v -t u1 "${1}" > "$byte_dump" || return 1
102
+ command awk -v kind="${2}" '
103
103
  { for (i = 1; i <= NF; i++) {
104
104
  b = $i + 0; n++;
105
105
  if (b == 0) bad = 1;
@@ -231,9 +231,9 @@ byte_dump=$(mktemp /tmp/omcustom-gh-byte-dump.XXXXXX) || exit 1
231
231
  trap 'command rm -f -- "$byte_dump"' 0
232
232
  trap 'exit 1' HUP INT TERM
233
233
  check_file() {
234
- [ -f "$1" ] || return 1
235
- command od -A n -v -t u1 "$1" > "$byte_dump" || return 1
236
- command awk -v kind="$2" '
234
+ [ -f "${1}" ] || return 1
235
+ command od -A n -v -t u1 "${1}" > "$byte_dump" || return 1
236
+ command awk -v kind="${2}" '
237
237
  { for (i = 1; i <= NF; i++) {
238
238
  b = $i + 0; n++;
239
239
  if (b == 0) bad = 1;
@@ -285,9 +285,9 @@ byte_dump=$(mktemp /tmp/omcustom-gh-byte-dump.XXXXXX) || exit 1
285
285
  trap 'command rm -f -- "$byte_dump"' 0
286
286
  trap 'exit 1' HUP INT TERM
287
287
  check_file() {
288
- [ -f "$1" ] || return 1
289
- command od -A n -v -t u1 "$1" > "$byte_dump" || return 1
290
- command awk -v kind="$2" '
288
+ [ -f "${1}" ] || return 1
289
+ command od -A n -v -t u1 "${1}" > "$byte_dump" || return 1
290
+ command awk -v kind="${2}" '
291
291
  { for (i = 1; i <= NF; i++) {
292
292
  b = $i + 0; n++;
293
293
  if (b == 0) bad = 1;
@@ -34,7 +34,7 @@ Orchestrates 10 parallel research teams for comprehensive deep analysis of any t
34
34
 
35
35
  ## Pre-flight Guards
36
36
 
37
- Before executing the 10-team research workflow, the agent MUST run these checks. Research is a high-cost operation (~$8-15) — these guards prevent wasteful execution.
37
+ Before executing the 10-team research workflow, the agent MUST run these checks. Research is a high-cost operation (~USD 8-15) — these guards prevent wasteful execution.
38
38
 
39
39
  ### Guard Levels
40
40
 
@@ -67,7 +67,7 @@ indicators_complex:
67
67
  - Query references a repository or ecosystem for deep analysis
68
68
  ```
69
69
 
70
- **Action (GATE)**: `[Pre-flight] GATE: Query appears to be a simple factual question. Use direct answer or single WebSearch instead. 10-team research (~$8-15) would be wasteful. Override with /research --force if intended.`
70
+ **Action (GATE)**: `[Pre-flight] GATE: Query appears to be a simple factual question. Use direct answer or single WebSearch instead. 10-team research (~USD 8-15) would be wasteful. Override with /research --force if intended.`
71
71
 
72
72
  ### Guard 2: Single-File Review Detection
73
73
 
@@ -128,7 +128,7 @@ fi
128
128
  ├── Known solution: PASS
129
129
  └── Context budget: WARN — context at 45%, research adds ~35%
130
130
  Result: PROCEED WITH CAUTION (0 GATE, 1 WARN, 0 INFO)
131
- Cost estimate: ~$8-15 for 10-team parallel research
131
+ Cost estimate: ~USD 8-15 for 10-team parallel research
132
132
  ```
133
133
 
134
134
  If any GATE: block and suggest alternative. User can override with `--force`.
@@ -407,7 +407,7 @@ Before execution:
407
407
 
408
408
  Estimated: {time} | Teams: 10 | Models: sonnet → opus
409
409
  Stopping: max 30 verification rounds, convergence at 0 contradictions
410
- Cost: ~$8-15 (10 teams × sonnet + opus verification)
410
+ Cost: ~USD 8-15 (10 teams × sonnet + opus verification)
411
411
  Execute? [Y/n]
412
412
  ```
413
413
 
@@ -464,7 +464,7 @@ Agent(
464
464
 
465
465
  - Each Teams member running research still respects R009 (max 4 concurrent sub-agents)
466
466
  - Batching order remains: T1-T4 → T5-T8 → T9-T10
467
- - Cost is identical to orchestrator mode (~$8-15 per research invocation)
467
+ - Cost is identical to orchestrator mode (~USD 8-15 per research invocation)
468
468
  - Multiple Teams members running research simultaneously will multiply costs proportionally
469
469
 
470
470
  ## Integration
@@ -74,7 +74,7 @@ Before execution, show the plan:
74
74
  ├── Phase 3: 적합성 분석 (sonnet)
75
75
  └── Phase 4: 이슈 생성
76
76
 
77
- 예상: ~1분 | 비용: ~$0.5-1.5
77
+ 예상: ~1분 | 비용: ~USD 0.5-1.5
78
78
  실행하시겠습니까? [Y/n]
79
79
  ```
80
80
 
@@ -185,9 +185,9 @@ byte_dump=$(mktemp /tmp/omcustom-gh-byte-dump.XXXXXX) || exit 1
185
185
  trap 'command rm -f -- "$byte_dump"' 0
186
186
  trap 'exit 1' HUP INT TERM
187
187
  check_file() {
188
- [ -f "$1" ] || return 1
189
- command od -A n -v -t u1 "$1" > "$byte_dump" || return 1
190
- command awk -v kind="$2" '
188
+ [ -f "${1}" ] || return 1
189
+ command od -A n -v -t u1 "${1}" > "$byte_dump" || return 1
190
+ command awk -v kind="${2}" '
191
191
  { for (i = 1; i <= NF; i++) {
192
192
  b = $i + 0; n++;
193
193
  if (b == 0) bad = 1;
@@ -297,7 +297,7 @@ When verdict is `INTERNALIZE` and integration effort is M or L:
297
297
  |--------|--------|-----------|
298
298
  | Purpose | Quick fit evaluation | Deep multi-dimensional analysis |
299
299
  | Teams | 1 agent | 10 teams |
300
- | Cost | ~$0.5-1.5 | ~$8-15 |
300
+ | Cost | ~USD 0.5-1.5 | ~USD 8-15 |
301
301
  | Duration | 1-2 min | 10-20 min |
302
302
  | Output | Issue with verdict | Full report with ADOPT/ADAPT/AVOID |
303
303
  | When | First contact with new link | Deep dive after scout recommends |
@@ -53,6 +53,10 @@ description: Brief description of what this Skill does and when to use it
53
53
  - 비어 있지 않아야 함
54
54
  - 최대 1024자
55
55
 
56
+ ### 위치 인자 `$N` 치환 (#1879)
57
+
58
+ Claude Code 2.1.310에서 스킬을 인자 3개(`alpha beta gamma`)와 함께 호출해 관측한 결과, `SKILL.md` 안의 인자 범위 안의 인덱스(이번 관측 `$0`~`$2`)는 펜스 코드 블록, 큰따옴표, 함수 본문, 산문에서 인자 값으로 치환되었습니다(`"$1"` → `"beta"`). `${1}` 표기는 치환되지 않았고, 두 번째 관측(스킬 도구로 omcustom-feedback을 인자 `alpha beta gamma`와 함께 로드, CC 2.1.310)에서도 `"${1}"`, `[ -f "${1}" ]`, `kind="${2}"`가 리터럴로 남았으므로, 스킬의 셸 코드에서는 위치 매개변수를 `${1}`로 쓰십시오. 범위를 벗어난 인덱스(`$3`~`$9`)와 인자 없는 호출은 치환되지 않았고, `$10`도 3개 인자 호출에서는 리터럴로 남았습니다(한 자리 숫자만 인식하는지는 확정하지 못했습니다 [가설]). 인자가 있는 호출에서는 산문의 `$5` 같은 금액 표기도 같은 규칙으로 치환될 수 있으므로, 금액은 `USD 5`처럼 쓰는 것을 권장합니다.
59
+
56
60
  ## 사용 가능한 Skills
57
61
 
58
62
  ### 사전 구축된 Agent Skills
@@ -2486,7 +2486,7 @@ Opus 4.8에서 thinking blocks가 수정되어 API 오류가 발생하던 버그
2486
2486
  - CHANGELOG 원문: "Fixed skills and commands with very many or very long argument names stalling for seconds when invoked; only the first 64 names, each up to 64 characters, are now filled in"
2487
2487
  (301) 인자 이름이 매우 많거나 긴 스킬·커맨드가 호출 시 수 초간 멈추던 결함이 수정되어, 이제 앞의 64개 이름(각 64자까지)만 채워집니다. 이름 붙은 인자를 선언하는 `arguments:` frontmatter는 이 저장소 스킬에서 0건이며(`git grep -c -E '^arguments:' -- '.claude/skills/*/SKILL.md'` 출력 없음), 추적된 SKILL.md 114개 중 50개는 표시용 `argument-hint:`를 씁니다(`git grep -l -E '^argument-hint:' -- '.claude/skills/*/SKILL.md' | wc -l`=50, `git ls-files -- '.claude/skills/*/SKILL.md' | wc -l`=114). 따라서 64개 상한에 걸리는 스킬은 관측되지 않았습니다.
2488
2488
  - CHANGELOG 원문: "Fixed skills, commands and hooks using very large amounts of memory when their arguments fill many placeholders"
2489
- (301) 인자가 많은 자리표시자를 채울 때 스킬·커맨드·훅이 매우 많은 메모리를 쓰던 결함이 수정되었습니다. 이 저장소에서 자리표시자 후보 문자열(`$ARGUMENTS` 또는 `$<숫자>`)이 있는 스킬 파일은 8개이며(`git grep -l -P '\$ARGUMENTS|\$[0-9]\b' -- '.claude/skills/*/SKILL.md' | wc -l`=8), 이 수에는 셸 예시 코드의 `$1` 같은 비자리표시자도 섞여 있을 수 있습니다. `$ARGUMENTS`를 쓰는 파일은 1개입니다(`git grep -c -P '\$ARGUMENTS' -- '.claude/skills/*/SKILL.md'` 1건, `.claude/skills/ambiguity-gate/SKILL.md`). "많은 자리표시자" 조건에 해당하는 스킬이 있는지는 판정하지 못했습니다 [가설 — 스킬 호출 전후 프로세스 메모리 측정으로 판정].
2489
+ (301) 인자가 많은 자리표시자를 채울 때 스킬·커맨드·훅이 매우 많은 메모리를 쓰던 결함이 수정되었습니다. 이 저장소에서 자리표시자 후보 문자열(`$ARGUMENTS` 또는 `$<숫자>`)이 있는 스킬 파일은 1개이며(`git grep -l -P '\$ARGUMENTS|\$[0-9]\b' -- '.claude/skills/*/SKILL.md' | wc -l`=1, 2026-10-25 작업 트리 재실측, `.claude/skills/ambiguity-gate/SKILL.md`), 셸 예시 코드 안의 `$N`도 인자가 있으면 치환되므로 후보에서 제외하지 않습니다(guide 04 「위치 인자 `$N` 치환」 참조). `$ARGUMENTS`를 쓰는 파일도 1개입니다(`git grep -c -P '\$ARGUMENTS' -- '.claude/skills/*/SKILL.md'` 1건, `.claude/skills/ambiguity-gate/SKILL.md`). "많은 자리표시자" 조건에 해당하는 스킬이 있는지는 판정하지 못했습니다 [가설 — 스킬 호출 전후 프로세스 메모리 측정으로 판정].
2490
2490
  - CHANGELOG 원문: "Fixed skills no longer being listed to the model after using `/rewind`"
2491
2491
  (301) `/rewind` 사용 후 스킬 목록이 모델에게 더 이상 제공되지 않던 결함이 수정되었습니다. 이 저장소 세션은 추적된 SKILL.md 114개(`git ls-files -- '.claude/skills/*/SKILL.md' | wc -l`=114)의 라우팅 스킬과 슬래시 커맨드 스킬을 모델이 볼 수 있는 스킬 목록에 의존하므로, 구버전에서 `/rewind` 뒤에 스킬 라우팅이 실패했다면 그 원인이 이 결함일 수 있습니다 [가설 — 2.1.301 미만에서 `/rewind` 직후 Skill 호출 실패 기록으로 판정].
2492
2492
  - CHANGELOG 원문: "Fixed workflow agents sometimes skipping their step, and the run still reporting success, after reading the harness note that their task text carries no user authority"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.0.5",
2
+ "version": "2.0.6",
3
3
  "lastUpdated": "2026-10-06",
4
4
  "omcustomMinClaudeCode": "2.1.121",
5
5
  "omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",
@@ -1009,7 +1009,7 @@ steps:
1009
1009
  찐빠 #3).
1010
1010
  - Delegations that create files, binaries, worktrees, or branches (artifact-creating
1011
1011
  delegations only — text-only edits are excluded) MUST include measured output in their
1012
- completion report — `file <bin>` for binaries, `ls -la <path>` for created paths, `git
1012
+ completion report — `file <bin>` for binaries, `ls -la <path>` for created paths (the orchestrator re-runs `ls -la` itself, R006 #1858), `git
1013
1013
  worktree list` for worktrees, `git branch --list` for branches, as applicable — and the
1014
1014
  orchestrator MUST confirm architecture/path from that measured output before using the
1015
1015
  artifact, not from the agent's self-report alone (R020 Subagent Self-Report