oh-my-customcode 2.0.4 → 2.0.5

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
@@ -208,7 +208,7 @@ All commands are invoked inside the Claude Code conversation.
208
208
  | Command | What it does |
209
209
  |---------|-------------|
210
210
  | `/omcustom:monitoring-setup` | OTel monitoring toggle |
211
- | `/omcustom-loop` | Auto-continue background agent workflows (3-continue safety limit) |
211
+ | `/omcustom-loop` | SubagentStop advisory hooks during background agent work (outcome recording, consecutive-completion advisory) |
212
212
  | `/omcustom:lists` | Show all commands |
213
213
  | `/omcustom:status` | System health check |
214
214
 
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.4",
338
+ version: "2.0.5",
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.4",
2909
+ version: "2.0.5",
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.4",
6
+ "version": "2.0.5",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -40,13 +40,13 @@ Tier를 섞으면(예: frontmatter에 Tier-3 전용 값을 쓰거나 그 반대)
40
40
  | `opusplan` | Opus + plan mode; architecture planning with approval gates |
41
41
  | `inherit` | Inherit the parent session's model |
42
42
 
43
- **CC resolves these, not this project.** This project cannot "pin" an alias to a specific version — measured: a frontmatter `model: sonnet` agent executed as `claude-sonnet-5` (the v2.1.197-era default), not a project-fixed `claude-sonnet-4-6`. Treat any "currently resolves to X" statement as a snapshot that changes when CC's own default changes.
43
+ **CC resolves these, not this project.** This project cannot "pin" an alias to a specific version; treat any "currently resolves to X" statement as a snapshot that changes when CC's own default changes (measured example via Read tool). <!-- DETAIL: measured example — a frontmatter `model: sonnet` agent executed as `claude-sonnet-5` (the v2.1.197-era default), not a project-fixed `claude-sonnet-4-6`. -->
44
44
 
45
45
  #### Tier 2 — Full model IDs (frontmatter `model:` ONLY — recommended for stability)
46
46
 
47
47
  | Full ID | Use Case |
48
48
  |---------|----------|
49
- | `claude-haiku-4-5` | Fast, cheap tasks |
49
+ | `claude-haiku-4-5` | Haiku, previous generation; fast, cheap tasks |
50
50
  | `claude-haiku-5-5` | Default Haiku model on the Anthropic API (v2.1.293+); 1M context |
51
51
  | `claude-sonnet-5` | Native 1M context; previous-generation Sonnet (v2.1.197+; on the Anthropic API, `claude-sonnet-5-5` is now the default Sonnet model, v2.1.284+) |
52
52
  | `claude-sonnet-5-5` | Now the default Sonnet model on the Anthropic API (v2.1.284+); 1M context, $2/$10 per Mtok, $0.10/Mtok cache reads in CC cost figures (v2.1.296; was $0.20) |
@@ -57,7 +57,7 @@ Tier를 섞으면(예: frontmatter에 Tier-3 전용 값을 쓰거나 그 반대)
57
57
  | `claude-fable-5` | Mythos-class; tier above Opus (access via CC v2.1.170+) |
58
58
  | `claude-fable-5-1` | Mythos-class; Fable 5.1 — v2.1.257부터 기본 Fable 모델, 1M context |
59
59
 
60
- Full IDs are valid ONLY in agent frontmatter — the Agent tool's `model:` spawn parameter does NOT accept them (see Tier 3). Writing the full ID directly (not a project-invented shorthand) pins the agent regardless of future CC default changes. This is the recommended way to opt into Sonnet 5.5 / Opus 5.5 / Fable 5 explicitly rather than riding CC's Tier-1 default resolution.
60
+ Full IDs are valid ONLY in agent frontmatter — the Agent tool's `model:` spawn parameter does NOT accept them (see Tier 3). Writing the full ID directly pins the agent regardless of future CC default changes. This is the recommended way to opt into Haiku 5.5 / Sonnet 5.5 / Opus 5.5 / Fable 5 / 5.1 explicitly rather than riding CC's Tier-1 default resolution.
61
61
 
62
62
  Extended context suffix: `[1m]` (e.g., `claude-opus-4-6[1m]`) — enables 1M token context window.
63
63
 
@@ -372,7 +372,7 @@ RETIRED (은퇴 릴리즈 v1.1.50, 보존 기준 v2.1.230 미만): > **v2.1.204+
372
372
 
373
373
  ## Permission Mode Guidance
374
374
 
375
- > Canonical source: R010 (MUST-orchestrator-coordination.md) "Universal bypassPermissions". Below CC 2.1.212, CC defaults per-call `mode` to `acceptEdits` — pass `mode: "bypassPermissions"` explicitly. From 2.1.212 the parameter is ignored: subagents inherit the parent session's mode, and frontmatter `permissionMode` (modes in the table below) may override it. Keep passing `mode` for compatibility; see R010 for the version table and self-check.
375
+ > Canonical source: R010 (MUST-orchestrator-coordination.md) "Universal bypassPermissions". Below CC 2.1.212 pass `mode: "bypassPermissions"` explicitly (default `acceptEdits`); from 2.1.212 the `mode` parameter is ignored (parent mode inherited; frontmatter `permissionMode`, table below, may override). Keep passing `mode`; see R010's version table and self-check. <!-- DETAIL: pre-compression wording — Below CC 2.1.212, CC defaults per-call `mode` to `acceptEdits` — pass `mode: "bypassPermissions"` explicitly. From 2.1.212 the parameter is ignored: subagents inherit the parent session's mode, and frontmatter `permissionMode` (modes in the table below) may override it. Keep passing `mode` for compatibility; see R010 for the version table and self-check. -->
376
376
 
377
377
  | Mode | Behavior |
378
378
  |------|----------|
@@ -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).
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. -->
461
461
 
462
462
  ### Sensitive Path Handling
463
463
 
@@ -490,14 +490,14 @@ CC v2.1.121+: `bypassPermissions`에서 `.claude/**`(templates 미러 포함)·`
490
490
 
491
491
  ### Artifact Channel Protocol
492
492
 
493
- 에이전트 간 결과 핸드오프 시 **아티팩트 파일을 채널로 사용**하는 프로토콜. 기존 Artifact Output Convention의 경로 규약을 에이전트 통신 계약으로 승격합니다.
493
+ 에이전트 간 결과 핸드오프 시 **아티팩트 파일을 채널로 사용**하는 프로토콜. <!-- DETAIL: Artifact Output Convention 경로 규약의 통신 계약 승격. -->
494
494
 
495
495
  #### 원칙
496
496
 
497
497
  | 원칙 | 내용 |
498
498
  |------|------|
499
- | Path-only transfer | 다음 에이전트에 전달할 때 **파일 경로만 전달**, 본문 inline 전달 금지 |
500
- | Read-write 분리 | 생산 에이전트는 Write, 소비 에이전트는 Read (파일 경쟁 방지) |
499
+ | Path-only transfer | 다음 에이전트에 전달할 때 **파일 경로만 전달**, 본문 inline 전달 금지(거부 중계 시 별도 writer 1회 제외 — 위 Convention) |
500
+ | Read-write 분리 | 생산 에이전트는 Write(거부 시 위 Convention의 중계 경로), 소비 에이전트는 Read (파일 경쟁 방지) |
501
501
  | Session-scoped | 아티팩트는 세션 범위 — `{YYYY-MM-DD}` 디렉토리로 격리 |
502
502
  | Single-writer | 한 아티팩트는 하나의 에이전트만 작성. 후속 에이전트는 새 아티팩트 생성 |
503
503
 
@@ -532,13 +532,13 @@ Agent body: purpose, capabilities overview, workflow. NOT detailed instructions
532
532
 
533
533
  ## Fast Mode
534
534
 
535
- Fast Mode uses the same model with faster output. Activated via `/fast` toggle or `fastMode` setting. Does NOT switch to a different model.
536
-
535
+ Fast Mode keeps the configured model (does NOT switch models): ~2.5x faster output, reduced reasoning depth. Activated via `/fast` or `fastMode` setting.
536
+ <!-- DETAIL: former table
537
537
  | Aspect | Normal | Fast Mode |
538
538
  |--------|--------|-----------|
539
539
  | Model | As configured | Same model |
540
540
  | Output speed | Standard | ~2.5x faster |
541
- | Reasoning depth | Full | Reduced |
541
+ | Reasoning depth | Full | Reduced | -->
542
542
 
543
543
  See activation, effort interaction, and default effort change details via Read tool.
544
544
 
@@ -656,7 +656,7 @@ Default: `core` (when field is omitted)
656
656
 
657
657
  ### Context Fork Criteria
658
658
 
659
- Use `context: fork` for multi-agent orchestration skills only. Cap: **12 total**. Current: 10/12 (secretary/dev-lead/de-lead/qa-lead-routing, dag-orchestration, task-decomposition, worker-reviewer-pipeline, deep-plan, professor-triage, roundtable-debate).
659
+ Use `context: fork` for multi-agent orchestration skills only. Cap: **12 total**. Current: 10/12 (list via Read tool). <!-- DETAIL: context:fork skills (10) — secretary/dev-lead/de-lead/qa-lead-routing, dag-orchestration, task-decomposition, worker-reviewer-pipeline, deep-plan, professor-triage, roundtable-debate. -->
660
660
 
661
661
  <!-- DETAIL: Context Fork decision table
662
662
  | Use context:fork | Do NOT use context:fork |
@@ -94,7 +94,7 @@ Active removal of irrelevant retrieved content from agent context. Complements o
94
94
 
95
95
  > **v2.1.260+**: 1M 컨텍스트를 가진 모델의 auto-compact 시점이 확대되어, Opus·Fable 세션도 이제 1M 토큰 한도 직전에 compact되고 매우 큰 컨텍스트에서의 recovery compaction이 더 이상 10분 타임아웃으로 실패하지 않습니다 — 위 v2.1.251 Sonnet 5 노트를 Opus/Fable 계열로 확장하는 것이므로, `CLAUDE_CODE_DISABLE_1M_CONTEXT`가 설정되지 않은 한 이 섹션의 백분율 임계값은 이제 세 모델군 전체에서 절대 토큰량 ~1M에 대응합니다. 같은 릴리즈에서 `/cost`와 statusline의 `prompt_cache` 필드가 prompt-cache miss의 **가능성 있는 원인**(도구 정의·시스템 프롬프트 변경, TTL 경과 idle)을 표시하도록 개선되어, 이 규칙이 다루는 캐시 관련 비용 이상 징후를 진단할 때 그 원인 후보를 출발점으로 삼을 수 있습니다 — 후보이지 확정 원인이 아니므로 R020 Proxy Signal 원칙대로 실측으로 확정합니다(cross-ref R012 statusline).
96
96
 
97
- > **v2.1.261+**: 컨텍스트 비용 진단 도구 2종이 추가되었습니다. `/skill-doctor`는 로드된 스킬 중 사용되지 않는 것과 그 컨텍스트 비용을 표시해 가지치기 대상을 알려줍니다 — 이 저장소의 115개 스킬 열거 블록과 `profile` 스킬의 플러그인 세트 전환에 직접 관련됩니다. `bashOutputMaxChars`/`taskOutputMaxChars` 설정은 command·background-task 출력이 파일로 저장되기 전 모델에 인라인 전달되는 상한을 올릴 수 있습니다(최대 128K자). **v2.1.277+**: `taskOutputMaxChars`는 `TaskOutput` 도구 제거로 더 이상 효과가 없습니다(상세는 `guides/claude-code/15-version-compatibility.md`). 지침: `bashOutputMaxChars`는 기본값으로 올리지 않습니다 — 이 규칙의 압축 원칙(파일 목록 → 개수, 오류 트레이스 → 앞/뒤 줄)이 작은 인라인 출력을 선호하므로, pass/fail 라인이 잘리는 특정 검증에 한해서만 올리고 그 외에는 독립적인 exit-code 조회(R005 #1492)를 우선합니다.
97
+ > **v2.1.261+**: 컨텍스트 비용 진단 도구 2종이 추가되었습니다. `/skill-doctor`는 로드된 스킬 중 사용되지 않는 것과 그 컨텍스트 비용을 표시해 가지치기 대상을 알려줍니다 — 이 저장소의 114개 스킬 열거 블록과 `profile` 스킬의 플러그인 세트 전환에 직접 관련됩니다. `bashOutputMaxChars`/`taskOutputMaxChars` 설정은 command·background-task 출력이 파일로 저장되기 전 모델에 인라인 전달되는 상한을 올릴 수 있습니다(최대 128K자). **v2.1.277+**: `taskOutputMaxChars`는 `TaskOutput` 도구 제거로 더 이상 효과가 없습니다(상세는 `guides/claude-code/15-version-compatibility.md`). 지침: `bashOutputMaxChars`는 기본값으로 올리지 않습니다 — 이 규칙의 압축 원칙(파일 목록 → 개수, 오류 트레이스 → 앞/뒤 줄)이 작은 인라인 출력을 선호하므로, pass/fail 라인이 잘리는 특정 검증에 한해서만 올리고 그 외에는 독립적인 exit-code 조회(R005 #1492)를 우선합니다.
98
98
 
99
99
  > **v2.1.269/273+**: (269) auto-compaction이 요약할 완전한 이전 대화 교환이 없을 때(주로 매우 큰 프롬프트를 쓰는 SDK 세션) "Prompt is too long"으로 세션이 영구적으로 멈추던 결함이 수정되었습니다. (273) context meter와 auto-compact가 advisor-tool 턴을 실제 컨텍스트 크기의 약 **2배**로 계산해 auto-compact가 실제 창의 약 **절반** 지점에서 발동하던 결함이 수정되었습니다 — 이 규칙의 백분율 임계값에 대한 함의: 273 이전 2.1.2xx에서 advisor tool을 쓴 세션은 CTX% 수치와 auto-compact 시점이 최대 2배 부풀려져, 그 수치에 근거한 예산 판단이 의도치 않게 보수적이었습니다; 273+에서는 미터를 다시 신뢰할 수 있습니다(cross-ref R012 statusline CTX 세그먼트).
100
100
 
@@ -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` | Session auto-continuation via SubagentStop hook — keeps the loop alive during background agent work |
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 |
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) |
@@ -256,12 +256,12 @@ That session ran 2 iterations (v0.177.0 and v0.178.0) before converging with 0 e
256
256
 
257
257
  This skill is intentionally a **thin alias**. It does NOT duplicate:
258
258
  - Issue polling logic (owned by `pipeline`)
259
- - Loop cadence / auto-continuation (owned by `omcustom-loop` + SubagentStop hook)
259
+ - Loop cadence (no SubagentStop-hook-driven continuation of the orchestrator loop — the orchestrator drives each next step; `omcustom-loop`'s SubagentStop hooks only record outcomes and emit advisories)
260
260
  - Release pipeline steps (owned by `pipeline auto-dev`)
261
261
  - Retrospective analysis (owned by `homework`)
262
262
  - PR merge execution (owned by `mgr-gitnerd`)
263
263
  - Completion verification (owned by R020 + `goal`)
264
- - Loop driving itself — the main conversation may run the iteration inline (see 「인라인 실행 허용」); `goal`/`omcustom-loop` are optional expressions of the same contract
264
+ - Loop driving itself — the main conversation may run the iteration inline (see 「인라인 실행 허용」); `goal`/`/loop` are optional expressions of the same contract; `omcustom-loop` hooks are advisory only
265
265
 
266
266
  If any of those underlying skills evolve, FSD automatically benefits — its only responsibility is declaring the intent and forwarding to the right components.
267
267
 
@@ -50,7 +50,7 @@ The haiku agent receives the following system prompt:
50
50
 
51
51
  ```
52
52
  You are a relevance filter for the oh-my-customcode project — an AI agent harness/orchestration
53
- system built on Claude Code CLI with 50 agents, 115 skills.
53
+ system built on Claude Code CLI with 50 agents, 114 skills.
54
54
 
55
55
  Project domains (HIGH relevance):
56
56
  - AI agent orchestration, multi-agent systems, agent design patterns
@@ -1,45 +1,44 @@
1
1
  ---
2
2
  name: omcustom-loop
3
- description: Prevent session idle during background agent work via SubagentStop prompt hook auto-continuation
3
+ description: SubagentStop advisory hooks during background agent work (outcome recording, consecutive-completion advisory; no orchestrator-workflow continuation)
4
4
  scope: core
5
5
  version: 1.0.0
6
6
  user-invocable: true
7
7
  ---
8
8
 
9
- # /omcustom-loop — Session Auto-Continuation
9
+ # /omcustom-loop — SubagentStop Advisory Hooks
10
10
 
11
11
  ## Overview
12
12
 
13
- Prevents session idle when background subagents complete by using a `SubagentStop` prompt hook that nudges the orchestrator to check for pending workflow steps.
13
+ When background subagents complete, `SubagentStop` command hooks record outcomes, count consecutive completions, and emit advisories; none of them continues the orchestrator's workflow. History: the "check pending steps" instruction was dropped from the prompt hook in v1.1.32 (commit 1dd0abef), and the remaining failure-gate prompt hook was replaced by an advisory command hook in d393db06 (#1631).
14
14
 
15
15
  ## How It Works
16
16
 
17
17
  1. When a background subagent completes, Claude Code fires the `SubagentStop` event
18
- 2. The prompt hook injects a message asking the orchestrator to check for pending steps
19
- 3. If pending steps exist, the orchestrator proceeds automatically
20
- 4. If no pending steps, it reports results and waits for user input
18
+ 2. The command hooks run: `task-outcome-recorder.sh` (records an outcome entry, but SubagentStop exposes no failure signal, so entries are always outcome=success; script comment lines 30-34), `stall-detection-advisor.sh` (stderr advisory on stalled parallel agents; stderr on exit 0 is visible to humans in transcript/debug, not fed to the model), `auto-continue-guard.sh` (counts consecutive completions), `r007-r008-drift-advisor.sh` (R007/R008 drift advisory), `subagent-failure-advisor.sh` (reads `.tool_output.is_error`, which is absent from the SubagentStop payload, so its warning can never trigger on this path until #1656 G (closed unfixed; tracked in #1775); script comment lines 30-34 of `task-outcome-recorder.sh` and line 22 of the advisor)
19
+ 3. None of them continues the orchestrator's workflow; the orchestrator decides the next workflow step itself from the returned results. Exception: when `r007-r008-drift-advisor.sh` emits an advisory on SubagentStop, CC delivers the `additionalContext` to the stopping subagent, which continues its turn to respond (CHANGELOG 2.1.163).
20
+ 4. If no steps remain, it reports results and waits for user input
21
21
 
22
- ## Safety Limits
22
+ ## Consecutive-Completion Advisory
23
23
 
24
- - **3 consecutive auto-continues max**: After 3 automatic progressions without user interaction, the system pauses and asks the user before proceeding
25
- - **stuck-detector integration**: If the same action repeats 3+ times, stuck-detector intervenes
26
- - **cost-cap-advisor**: Cost monitoring continues during auto-continuation
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
25
+ - **stuck-detector integration**: If the same action repeats 3+ times, the independent PostToolUse stuck-detector hook intervenes
26
+ - **cost-cap-advisor**: Cost monitoring is independent of these hooks
27
27
 
28
28
  ## Configuration
29
29
 
30
- The hook is configured in `.claude/hooks/hooks.json` under `SubagentStop`. It works alongside the existing `task-outcome-recorder.sh` command hook.
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`).
31
31
 
32
32
  ## Limitations
33
33
 
34
- - **Platform constraint**: Claude Code's turn-based model means the prompt hook only fires when a subagent completes — it cannot wake the model from true idle state
35
- - **Foreground agents preferred**: For guaranteed continuation, use foreground parallel agents (R009) instead of background agents
36
- - **PoC status**: This is an experimental feature. If the prompt hook doesn't reliably trigger in all scenarios, fall back to foreground agent patterns
34
+ - **Platform constraint**: Claude Code's turn-based model means these SubagentStop command hooks only fire when a subagent completes — none of them wakes the model from true idle state (no `asyncRewake` is configured: `grep -c asyncRewake` = 0 in both `.claude/hooks/hooks.json` and `.claude/settings.json`), and none of them continues the orchestrator's workflow
35
+ - **Foreground agents preferred**: These hooks do not guarantee continuation; use foreground parallel agents (R009) instead of background agents
36
+ - **PoC status**: This is an experimental feature. These hooks only record and advise; prefer foreground agent patterns when you need deterministic follow-up
37
37
 
38
38
  ## Usage
39
39
 
40
40
  ```bash
41
- /omcustom-loop # Show current auto-continuation status
42
- /omcustom-loop status # Same as above
41
+ /omcustom-loop # Skill entry point (no status command exists; the consecutive-completion counter lives in `/tmp/.claude-loop-count-${PPID}`)
43
42
  ```
44
43
 
45
- The feature is active by default via hooks.json. No explicit activation needed.
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.
@@ -1115,6 +1115,21 @@ steps:
1115
1115
  지정합니다 — 원문에 있는지와 이 버전의 원문인지를 같은 검사로 취급하면 다른 버전
1116
1116
  문장이 섞여도 통과하므로, #1757 찐빠 #4).
1117
1117
  For a bundled multi-version note (R017 「묶음 버전 노트 위임서 — 문장별 (NNN) 태그와 합쇼체 예시」), cut one section file per version and verify each quote against its own version's file.
1118
+ - The FIRST drafting delegation of a `claude-code-release` CC-note (and of any document
1119
+ that makes many repository-impact claims — i.e. whose sentences assert repository facts,
1120
+ counts, or absences) MUST include, as a completion criterion, an exclusive/universal-claim
1121
+ sweep over its own new text; every later correction delegation that adds new claim
1122
+ sentences MUST run the same sweep over those sentences: find every exclusive or universal
1123
+ claim (keywords such as 뿐, 만, 전부, 모두, 0건, 없습니다, "only", "all", "none", and
1124
+ enumerations presented as complete) and give each exactly one of three treatments —
1125
+ (1) attach the full measuring command with its pathspec, (2) narrow it to
1126
+ "관측한 범위(<full literal command>)", or (3) tag it [가설]. Occurrences inside quoted
1127
+ source text (e.g. CHANGELOG quotations) or their translations are excluded from the
1128
+ verdict. The completion report MUST list each swept claim with its treatment and, for
1129
+ every cited command, name its grep blind spots (e.g. line continuations, commands invoked
1130
+ through a variable binary, case/hyphen variants, files outside the pathspec, text inside
1131
+ HTML `<!-- DETAIL -->` comments) (배타·전칭 서술이 반례 하나로 깨지는 리뷰 지적 계열
1132
+ 방지 — v2.0.2 라운드 2에 스윕 도입 후 다음 리뷰의 신규 Medium 이상 11→4, #1860).
1118
1133
  - Any delegation correcting a fact (the issue states an existing statement in a target file
1119
1134
  is wrong) — not only `claude-code-release` CC-notes — MUST include, as a completion
1120
1135
  criterion, an exhaustive `grep` across the target file(s) for the claim's key terms (the terms in a file written with the Write tool, run through the quote-verify block of the fixed constraint (c) as a search, not a pass/fail check), not
@@ -36,7 +36,7 @@ Agents:
36
36
  Total: 50 agents
37
37
 
38
38
  Skills:
39
- Total: 115 skills
39
+ Total: 114 skills
40
40
 
41
41
  Guides: 56 loaded
42
42
  Commands: 60+ available
@@ -23,7 +23,7 @@ LangChain의 Deep Agents 평가 방법론은 "More evals ≠ better agents" 철
23
23
 
24
24
  ### oh-my-customcode 맥락
25
25
 
26
- oh-my-customcode의 에이전트 시스템은 50개 전문 에이전트와 115개 스킬로 구성된다. 이 방법론은 신규 에이전트 검증(mgr-creator), 릴리즈 품질 검증(deep-verify), 반복 개선 루프(evaluator-optimizer)에 정량 차원을 추가하는 수단으로 내재화된다.
26
+ oh-my-customcode의 에이전트 시스템은 50개 전문 에이전트와 114개 스킬로 구성된다. 이 방법론은 신규 에이전트 검증(mgr-creator), 릴리즈 품질 검증(deep-verify), 반복 개선 루프(evaluator-optimizer)에 정량 차원을 추가하는 수단으로 내재화된다.
27
27
 
28
28
  ---
29
29