oh-my-customcode 1.1.102 → 1.1.103
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 +363 -26
- package/dist/index.js +95 -5
- package/package.json +1 -1
- package/templates/.claude/output-styles/korean-engineer.md +1 -1
- package/templates/.claude/rules/MUST-agent-design.md +2 -2
- package/templates/.claude/rules/MUST-agent-teams.md +13 -2
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +41 -29
- package/templates/.claude/rules/MUST-permissions.md +12 -9
- package/templates/.claude/skills/action-validator/SKILL.md +2 -2
- package/templates/.claude/skills/adaptive-harness/SKILL.md +2 -2
- package/templates/.claude/skills/adversarial-review/SKILL.md +1 -1
- package/templates/.claude/skills/agent-eval-framework/SKILL.md +2 -2
- package/templates/.claude/skills/de-lead-routing/SKILL.md +2 -2
- package/templates/.claude/skills/deep-plan/SKILL.md +4 -4
- package/templates/.claude/skills/deep-verify/SKILL.md +3 -3
- package/templates/.claude/skills/design-shotgun/SKILL.md +1 -1
- package/templates/.claude/skills/dev-lead-routing/SKILL.md +2 -2
- package/templates/.claude/skills/dev-review/SKILL.md +2 -2
- package/templates/.claude/skills/evaluator-optimizer/SKILL.md +1 -1
- package/templates/.claude/skills/fsd/SKILL.md +3 -4
- package/templates/.claude/skills/harness-eval/SKILL.md +1 -1
- package/templates/.claude/skills/harness-synthesizer/SKILL.md +1 -1
- package/templates/.claude/skills/homework/SKILL.md +3 -3
- package/templates/.claude/skills/idea/SKILL.md +4 -2
- package/templates/.claude/skills/instinct-extractor/SKILL.md +8 -8
- package/templates/.claude/skills/intent-detection/SKILL.md +1 -1
- package/templates/.claude/skills/multi-model-verification/SKILL.md +2 -2
- package/templates/.claude/skills/omcustom-release-notes/SKILL.md +1 -1
- package/templates/.claude/skills/pipeline/SKILL.md +1 -1
- package/templates/.claude/skills/pipeline/workflows/auto-dev.yaml +2 -2
- package/templates/.claude/skills/post-release-followup/SKILL.md +2 -2
- package/templates/.claude/skills/professor-triage/SKILL.md +10 -10
- package/templates/.claude/skills/profile/SKILL.md +4 -4
- package/templates/.claude/skills/qa-lead-routing/SKILL.md +2 -2
- package/templates/.claude/skills/release-plan/SKILL.md +1 -1
- package/templates/.claude/skills/research/SKILL.md +8 -6
- package/templates/.claude/skills/result-aggregation/SKILL.md +1 -1
- package/templates/.claude/skills/roundtable-debate/SKILL.md +2 -2
- package/templates/.claude/skills/scout/SKILL.md +3 -8
- package/templates/.claude/skills/sec-agentshield-wrapper/SKILL.md +1 -1
- package/templates/.claude/skills/secretary-routing/SKILL.md +2 -2
- package/templates/.claude/skills/skill-extractor/SKILL.md +1 -1
- package/templates/.claude/skills/structured-dev-cycle/SKILL.md +1 -1
- package/templates/.claude/skills/task-decomposition/SKILL.md +1 -1
- package/templates/.claude/skills/worker-reviewer-pipeline/SKILL.md +5 -1
- package/templates/guides/claude-code/15-version-compatibility.md +1 -1
- package/templates/guides/deep-plan/phases.md +11 -9
- package/templates/guides/harness-engineering/README.md +2 -1
- package/templates/guides/professor-triage/README.md +1 -1
- package/templates/guides/professor-triage/phases.md +1 -1
- package/templates/manifest.json +1 -1
- package/templates/workflows/auto-dev.yaml +2 -2
|
@@ -371,7 +371,7 @@ RETIRED (은퇴 릴리즈 v1.1.50, 보존 기준 v2.1.230 미만): > **v2.1.204+
|
|
|
371
371
|
|
|
372
372
|
## Permission Mode Guidance
|
|
373
373
|
|
|
374
|
-
> Canonical source
|
|
374
|
+
> 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
375
|
|
|
376
376
|
| Mode | Behavior |
|
|
377
377
|
|------|----------|
|
|
@@ -390,7 +390,7 @@ RETIRED (은퇴 릴리즈 v1.1.50, 보존 기준 v2.1.230 미만): > **v2.1.204+
|
|
|
390
390
|
> **v2.1.212+**: Agent(구 Task) tool의 `mode` 파라미터가 **deprecated되어 무시됩니다** — subagent는 **기본적으로** 부모(오케스트레이터) 세션의 permission mode를 상속합니다. 위 "CC defaults `mode` to `acceptEdits`" 서술과 R010 Universal bypassPermissions의 per-call `mode: "bypassPermissions"` 지정은 플랫폼 레벨에서 no-op가 됩니다(명시 지정 자체는 무해). 무인 실행의 실제 bypass 여부는 이제 부모 세션 mode가 결정하므로, 오케스트레이터 세션을 bypassPermissions로 유지하는 것이 핵심입니다. Canonical owner는 R010.
|
|
391
391
|
-->
|
|
392
392
|
|
|
393
|
-
<!-- DETAIL: Permission Mode Guidance (reasoning)
|
|
393
|
+
<!-- DETAIL (applies to CC < 2.1.212 only, #1818): Permission Mode Guidance (reasoning)
|
|
394
394
|
When spawning agents via the Agent tool, CC applies a default `mode` of `acceptEdits` if not explicitly specified. To maintain consistent permission behavior:
|
|
395
395
|
|
|
396
396
|
1. **Agent frontmatter `permissionMode`**: Declares the agent's intended permission level. CC respects this when the agent is spawned via Agent tool.
|
|
@@ -448,10 +448,10 @@ Agent Teams 멤버는 long-running 작업 중 TaskUpdate 로 진행 상태를
|
|
|
448
448
|
Agent Teams 멤버는 long-running 작업 중 진행 상태를 TaskUpdate 로 명시적으로 알려야 한다. 침묵은 코디네이터가 죽었거나 멤버가 막혔다고 오인하게 만든다.
|
|
449
449
|
-->
|
|
450
450
|
|
|
451
|
-
`TaskCreate/Get/Update/List`는 현행 모델(Opus 4.8 / Sonnet 5 / Fable 5 / Mythos 5 이상)에서 기본 미제공(R002) — 가용 시 아래 표, 부재 시
|
|
451
|
+
`TaskCreate/Get/Update/List`는 현행 모델(Opus 4.8 / Sonnet 5 / Fable 5 / Mythos 5 이상)에서 기본 미제공(R002) — 가용 시 아래 표, 부재 시 「Task 도구 부재 시 대체 규약」을 따른다.
|
|
452
452
|
|
|
453
453
|
<!-- DETAIL: Task tool availability measurement note, original wording
|
|
454
|
-
> **도구 가용성 선확인 (v2.1.233+)**: `TaskCreate/Get/Update/List`는 현행 모델(Opus 4.8 / Sonnet 5 / Fable 5 / Mythos 5 이상)에서 기본 제거되어 이 저장소 실행 환경에 **존재하지 않는다** — 실측은 R002 「Todo/Task 도구 기본 제거」. 아래 표는 Task 도구가 가용할 때(구모델 또는 `CLAUDE_CODE_ENABLE_TODO_TOOLS=1`)의 규정이며, **부재 시 아래 대체
|
|
454
|
+
> **도구 가용성 선확인 (v2.1.233+)**: `TaskCreate/Get/Update/List`는 현행 모델(Opus 4.8 / Sonnet 5 / Fable 5 / Mythos 5 이상)에서 기본 제거되어 이 저장소 실행 환경에 **존재하지 않는다** — 실측은 R002 「Todo/Task 도구 기본 제거」. 아래 표는 Task 도구가 가용할 때(구모델 또는 `CLAUDE_CODE_ENABLE_TODO_TOOLS=1`)의 규정이며, **부재 시 아래 「Task 도구 부재 시 대체 규약」을 따른다**. 없는 도구의 호출을 의무로 남겨두면 실행 불가능한 규정이 된다.
|
|
455
455
|
-->
|
|
456
456
|
|
|
457
457
|
| 시점 | 호출 |
|
|
@@ -487,6 +487,17 @@ Reference issue: #1087.
|
|
|
487
487
|
`TaskList` 부재로 **공유 작업 목록이라는 조율 기반 자체가 사라지므로**, 아래 Member Completion Verification의 "보고는 신호일 뿐, 판정은 실측"이 보조 원칙이 아니라 **유일한 방어선**이 된다.
|
|
488
488
|
-->
|
|
489
489
|
|
|
490
|
+
### 멤버 도구 부재 시 대체 규약 (Origin: #1817)
|
|
491
|
+
|
|
492
|
+
멤버의 도구 구성은 그 에이전트의 frontmatter `tools:`와 실행 환경에 좌우되는 것으로 추정된다(#1817 "추정 원인 (미검증)") — `SendMessage`·`Agent`·`ToolSearch`가 있다고 가정하지 않는다(#1817: 멤버 3종에서 일부 부재 관측). 전용 `Glob`/`Grep`은 실측됐다(R002 ‡, CC 2.1.289): frontmatter `tools:`에 명시한 `qa-writer`는 받았고, 명시 목록이 없는 메인 세션에는 없었다 — 명시되지 않은 쪽은 부재로 전제한다. 멤버 측 `SendMessage` 지시(위 「Task 도구 부재 시 대체 규약」 표, TaskUpdate 표의 "차단 시" 행, 「Blocked Agent Behavior」의 "Post-completion: SendMessage + wait silently")는 모두 `SendMessage` 부재 시 아래 표를 따른다.
|
|
493
|
+
|
|
494
|
+
| 부재 도구 | 대체 수단 |
|
|
495
|
+
|-----------|-----------|
|
|
496
|
+
| `SendMessage` | 아티팩트 파일 채널(R006 Artifact Channel Protocol) — 오케스트레이터가 경로를 중계 |
|
|
497
|
+
| `Agent` | 멤버는 필요한 스폰(예: R017 `mgr-sauron:watch`)을 보고하고 오케스트레이터가 스폰 |
|
|
498
|
+
| `ToolSearch` | 로드할 수 없는 지연 도구는 부재로 취급하고 이 표의 해당 행을 따른다(R002 §) |
|
|
499
|
+
| 전용 `Glob`/`Grep` (명시 목록에 없음) | 읽기 전용 Bash(`git grep`·`find`, R002 Tier 4 승인 정책 적용). Bash도 없으면 오케스트레이터가 사전 수집해 내용으로 전달(R010 「Known Limitations (Active Cache)」) |
|
|
500
|
+
|
|
490
501
|
## Member Completion Verification (deterministic ground-truth)
|
|
491
502
|
|
|
492
503
|
Agent Teams member completion MUST be verified by deterministic ground-truth — NOT by SendMessage reports or TaskList status alone. Members may edit files without updating task status (task stays `pending`) or go idle without executing at all.
|
|
@@ -11,11 +11,12 @@ The main conversation is the **sole orchestrator**. It uses routing skills to de
|
|
|
11
11
|
-->
|
|
12
12
|
|
|
13
13
|
<!-- DETAIL: Agent Teams Exception detail (restated in ARCHIVED note below)
|
|
14
|
-
**Agent Teams Exception
|
|
14
|
+
**Agent Teams Exception** (conditional, #1817): Agent Teams members are peers, not hierarchical subagents. A member MAY spawn sub-agents via the Agent tool only when `Agent` is actually in its tool list (presumably decided by its frontmatter `tools:` and the execution environment — #1817 "추정 원인 (미검증)"; the documented cause of dedicated Glob/Grep absence is CC 2.1.117, which replaces them with Bash-embedded bfs/ugrep on native builds — #1817 observed members without `Agent`/`SendMessage`/`ToolSearch`). When present, the member acts as a local orchestrator for its own sub-tasks (e.g., `/research`, `/deep-plan` inside a member). When absent, use the R018 「멤버 도구 부재 시 대체 규약」: file channel + orchestrator relay/spawn.
|
|
15
|
+
Original wording (pre-#1817): "Teams members CAN spawn sub-agents via the Agent tool to execute complex workflows (e.g., research teams, verification teams)."
|
|
15
16
|
-->
|
|
16
17
|
|
|
17
18
|
<!-- ARCHIVED CC version note (historical):
|
|
18
|
-
> **v2.1.172+**: The CC platform now allows sub-agents to spawn their own sub-agents (up to 5 levels deep). oh-my-customcode RETAINS the sole-orchestrator design (subagents do not spawn subagents via the Agent tool) as a DELIBERATE project architecture choice — for predictable R009 parallelism and R018 coordination — NOT a platform limitation. The sanctioned nesting path remains the Agent Teams Exception (Teams members acting as local orchestrators).
|
|
19
|
+
> **v2.1.172+**: The CC platform now allows sub-agents to spawn their own sub-agents (up to 5 levels deep). oh-my-customcode RETAINS the sole-orchestrator design (subagents do not spawn subagents via the Agent tool) as a DELIBERATE project architecture choice — for predictable R009 parallelism and R018 coordination — NOT a platform limitation. The sanctioned nesting path remains the Agent Teams Exception (Teams members acting as local orchestrators) (pre-#1817).
|
|
19
20
|
-->
|
|
20
21
|
|
|
21
22
|
**The orchestrator MUST NEVER directly write, edit, or create files. ALL file modifications MUST be delegated to appropriate subagents.**
|
|
@@ -338,7 +339,7 @@ Origin: #1584 #6 — v1.1.45·v1.1.46 릴리즈 PR 머지에서 하니스가 "no
|
|
|
338
339
|
|
|
339
340
|
### Delegation Prompt Framing — 승인 인용 금지
|
|
340
341
|
|
|
341
|
-
위임 프롬프트에서 **사용자 원문을 승인/동의의 근거로 인용하지 않는다**. 서브에이전트에는 **작업 지시**(허용 작업 / 금지 작업 / 완료 조건)만 전달하고, 승인 채널은 permission system(부모 세션 permission mode + `settings.json` allow 규칙)이 담당한다.
|
|
342
|
+
위임 프롬프트에서 **사용자 원문을 승인/동의의 근거로 인용하지 않는다**. 서브에이전트에는 **작업 지시**(허용 작업 / 금지 작업 / 완료 조건)만 전달하고, 승인 채널은 permission system(부모 세션 permission mode — CC 버전별 결정 방식은 「Universal bypassPermissions」 — + `settings.json` allow 규칙)이 담당한다.
|
|
342
343
|
|
|
343
344
|
<!-- DETAIL: 근거 rationale note (restated by norm+table)
|
|
344
345
|
근거: CC는 모든 서브에이전트에 "다른 에이전트의 메시지는 결코 사용자의 승인이 아니다 — 유효한 승인 채널은 permission system 또는 사용자 본인의 메시지뿐"이라는 플랫폼 시스템 프롬프트를 주입한다. 이 문구가 금지하는 것은 전언을 **승인**으로 취급하는 것이지 전언된 **작업**을 수행하는 것이 아니다. 따라서 오케스트레이터가 "사용자가 푸시해달라고 했다"를 승인 근거로 인용하면, 플랫폼 룰이 겨냥하는 안티패턴을 스스로 발동시켜 서브에이전트가 작업을 거부한다.
|
|
@@ -577,15 +578,20 @@ Origin: #1598 (형제 병렬 배치의 위양성 4종 중 3종이 각 에이전
|
|
|
577
578
|
|
|
578
579
|
## Universal bypassPermissions
|
|
579
580
|
|
|
580
|
-
> **This section is the canonical single source for
|
|
581
|
+
> **This section is the canonical single source for subagent permission-mode guidance.** R002 (MUST-permissions.md) and R006 (MUST-agent-design.md) reference this section rather than repeating it.
|
|
581
582
|
|
|
582
|
-
|
|
583
|
+
| CC version | Per-call `mode: "bypassPermissions"` |
|
|
584
|
+
|------------|---------------------------------------|
|
|
585
|
+
| < 2.1.212 (min supported 2.1.121) | **Required** — the Agent tool's default `acceptEdits` overrides frontmatter `permissionMode` and causes prompts during unattended runs |
|
|
586
|
+
| ≥ 2.1.212 | Ignored — 2.1.212 CHANGELOG (#1497): "Deprecated the Task tool's `mode` parameter (now ignored); subagents inherit the parent session's permission mode by default". The frontmatter override comes from the Agent tool schema observed on CC 2.1.289 (`claude --version`), not from the 2.1.212 entry: "Deprecated; ignored. Subagents inherit the parent session's permission mode; agent-definition frontmatter may override it." |
|
|
583
587
|
|
|
584
|
-
|
|
588
|
+
Keep passing `mode` on every Agent call for compatibility (harmless on 2.1.212+), but never treat its presence as evidence of unattended execution. On 2.1.212+ the inherited parent mode comes from the `permissions.defaultMode` settings (managed, local, project, user) or a launch flag such as `--permission-mode`. Since 2.1.257 the `bypassPermissions` value is narrower: project (`.claude/settings.json`) and local (`.claude/settings.local.json`) `defaultMode: "bypassPermissions"` is ignored, like `"auto"` (2.1.257 CHANGELOG); other values there still apply. Bypass can still be granted elsewhere, e.g. user or managed settings, `--permission-mode`, or `--dangerously-skip-permissions` (`claude --help` on 2.1.289: "Bypass all permission checks.") (#1644).
|
|
589
|
+
|
|
590
|
+
<!-- DETAIL (applies to CC < 2.1.212 only, #1818): Agent tool default explanation
|
|
585
591
|
The Agent tool defaults to `mode: "acceptEdits"`, which overrides agent frontmatter `permissionMode` and causes permission prompts during unattended execution. This is a CC platform behavior, not a configuration error.
|
|
586
592
|
-->
|
|
587
593
|
|
|
588
|
-
<!-- DETAIL: bypassPermissions Aspect/Detail table
|
|
594
|
+
<!-- DETAIL (applies to CC < 2.1.212 only, #1818): bypassPermissions Aspect/Detail table
|
|
589
595
|
| Aspect | Detail |
|
|
590
596
|
|--------|--------|
|
|
591
597
|
| Scope | Every Agent tool call, without exception |
|
|
@@ -594,32 +600,37 @@ The Agent tool defaults to `mode: "acceptEdits"`, which overrides agent frontmat
|
|
|
594
600
|
| Enforcement | Prompt-based (R021); all agent-spawning skills include instruction |
|
|
595
601
|
-->
|
|
596
602
|
|
|
597
|
-
### Self-Check
|
|
598
|
-
|
|
599
|
-
Before
|
|
600
|
-
1. **유효 permission mode
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
(
|
|
603
|
+
### Self-Check (MUST)
|
|
604
|
+
|
|
605
|
+
Before unattended execution (item 1) and when authoring a skill that spawns agents (item 2):
|
|
606
|
+
1. **유효 permission mode 실측** — CC ≥ 2.1.212: 부모 모드는 `permissions.defaultMode`(managed·local·
|
|
607
|
+
project·user 범위)와 실행 플래그(`--permission-mode` 등)가 정한다. 2.1.257+에서 무시되는 것은
|
|
608
|
+
project/local의 `bypassPermissions` **값뿐**이며 그 범위의 다른 값(예: init 배포본의 `"default"`)은
|
|
609
|
+
여전히 원천이다(위 문단). 세 파일을 함께 실측한다 —
|
|
610
|
+
`jq -r '.permissions.defaultMode // "unset"' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json`
|
|
611
|
+
(출력 순서 user·project·local) — managed 설정과 실행 플래그도 원천이므로 별도로 확인한다. 범위 간
|
|
612
|
+
우선순위(예: project의 `"default"`가 user의 `bypassPermissions`보다 앞서는지)는 `[가설]` — 미실측.
|
|
613
|
+
대상 에이전트 frontmatter `permissionMode`가 이를 덮어쓸 수 있다 — 근거는 CHANGELOG 항목이 아니라
|
|
614
|
+
CC 2.1.289에서 관측한 Agent tool 스키마("agent-definition frontmatter may override it")다. 이 구간에서
|
|
615
|
+
per-call `mode` 값은 무인 실행의 증거가 아니다(R020 "actual outcome ≠ attempt").
|
|
616
|
+
CC < 2.1.212: per-call `mode`가 서브에이전트 모드를 정한다 — 생략하면 기본값 `acceptEdits`가
|
|
617
|
+
frontmatter `permissionMode`를 덮어쓴다(위 버전 표). 어느 구간이든 유효 모드가
|
|
604
618
|
bypassPermissions 가 아니면 프롬프트 발생을 전제로 계획한다.
|
|
605
|
-
하위 호환을 위해 per-call `mode: "bypassPermissions"` 는 계속 포함하되,
|
|
606
|
-
**그 존재를 무인 실행의 증거로 삼지 않는다**(R020 "attempt ≠ outcome").
|
|
607
619
|
<!-- DETAIL: defaultMode ignored measurement evidence
|
|
608
620
|
실측(2026-09-03, `claude -p --debug-file`): `[WARN] settings defaultMode "bypassPermissions"
|
|
609
621
|
ignored — only policy/user/flag settings may grant bypass mode (projectSettings and
|
|
610
622
|
localSettings are repo-controllable)` — 무시 동작이 직접 실증되었다. 프로젝트 settings에는
|
|
611
623
|
`permissions._comment_defaultMode` 안내 키가 추가되었다(v1.1.59).
|
|
612
624
|
-->
|
|
613
|
-
2. Is this a new skill that spawns agents? →
|
|
625
|
+
2. Is this a new skill that spawns agents? → Include `mode: "bypassPermissions"` in its Agent calls (required below 2.1.212) and point to this section for the version split
|
|
614
626
|
|
|
615
627
|
### Common Violation
|
|
616
628
|
|
|
617
629
|
```
|
|
618
|
-
❌ WRONG: Agent
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
Agent(subagent_type: "lang-golang-expert", mode: "bypassPermissions", prompt: "...")
|
|
630
|
+
❌ WRONG (CC < 2.1.212): Agent call without mode → acceptEdits default, prompts mid-run
|
|
631
|
+
❌ WRONG (CC ≥ 2.1.212): Prompt appears → assume a missing mode is the cause
|
|
632
|
+
✓ CORRECT: Always pass mode, and diagnose 2.1.212+ prompts via the parent's effective mode
|
|
633
|
+
and the agent's frontmatter permissionMode
|
|
623
634
|
```
|
|
624
635
|
|
|
625
636
|
|
|
@@ -637,7 +648,7 @@ Before spawning any agent:
|
|
|
637
648
|
| >= v2.1.141 | Preserves current permission mode — `/bg` flows no longer need extra workaround |
|
|
638
649
|
-->
|
|
639
650
|
|
|
640
|
-
|
|
651
|
+
Background agents (`/bg`, `←←`) keep the current session's permission mode (v2.1.141+); Agent tool calls still follow the CC-version table at the top of 「Universal bypassPermissions」 (per-call `mode` required below 2.1.212, ignored from 2.1.212).
|
|
641
652
|
|
|
642
653
|
<!-- ARCHIVED CC version note (historical):
|
|
643
654
|
> **v2.1.172+**: Fixed background agents potentially reading another directory's project settings (`.mcp.json` approvals, trust) when dispatched onto a pre-warmed worker. Strengthens background-agent isolation — a `/bg`-dispatched agent now reads the correct project's settings.
|
|
@@ -737,7 +748,7 @@ Before delegating a task to a subagent, MUST verify the target agent's tool capa
|
|
|
737
748
|
| `Read` external files | `tools:` includes Read |
|
|
738
749
|
| `Write` files | `tools:` includes Write (and target path not in `disallowedTools` scope) |
|
|
739
750
|
| MCP server calls | `mcpServers:` includes the required server |
|
|
740
|
-
| Task targets a specific file path | The path EXISTS (`Glob
|
|
751
|
+
| Task targets a specific file path | The path EXISTS (`ls`/`find`, or `Glob` when present — not `git ls-files`, which reports an existing untracked path as absent; tracked status is the next row) — capability check alone does not catch a missing/renamed file |
|
|
741
752
|
| Task targets an EXISTING file for editing/commit (not a newly-created file) | The path is git-tracked (`git ls-files <path>` non-empty) — an existing-but-untracked target needs an explicit scope decision before delegation |
|
|
742
753
|
|
|
743
754
|
<!-- DETAIL: path-existence clarification (restated by Required Checks row)
|
|
@@ -797,6 +808,7 @@ Before delegating a task to a subagent, MUST verify the target agent's tool capa
|
|
|
797
808
|
| Agent | Limitation | Workaround |
|
|
798
809
|
|-------|-----------|-----------|
|
|
799
810
|
| `arch-documenter` | `disallowedTools: [Bash]` — cannot run `gh`, shell scripts, `diff`/`md5`/`verify-*.sh` | Pre-collect data via orchestrator, pass as content; OR use `general-purpose` for the Bash-needing portion. **Completion-condition guard (#1593 #1)**: do NOT put `diff` / `md5` / `verify-*.sh` execution into arch-documenter's completion criteria — the orchestrator must run these itself, or split off a `general-purpose` agent for the Bash-needing verification |
|
|
811
|
+
| `arch-documenter`, `fe-design-expert`, `mgr-supplier`, `qa-planner`, `qa-writer`, `sys-naggy` (frontmatter parse: `Bash` in `disallowedTools`) | No Bash, so every search path is the dedicated `Grep`/`Glob` listed in their `tools:` (`sys-naggy` lists `Grep` only). Measured 2026-10-05 on CC 2.1.289: a spawned `qa-writer` received `Read`, `Write`, `Edit`, `Grep`, `Glob` — consistent with 2.1.162 ("explicitly listing Grep/Glob now provides the dedicated search tools on native builds with embedded search"); the main session, which has no explicit list, lacks them (2.1.117). The other five were not spawned to measure | Do not remove `Grep`/`Glob` from these agents' `tools:` — without Bash they would have no search path left |
|
|
800
812
|
| `qa-engineer` | (verify each invocation) | — |
|
|
801
813
|
|
|
802
814
|
### Common Violation
|
|
@@ -818,9 +830,7 @@ Reference issues: #1202 item #2, `feedback_arch_documenter_no_bash.md`.
|
|
|
818
830
|
> **Status**: Deprecated as of CC v2.1.121 (2026-04-28) and further relaxed in v2.1.126 (2026-05-01). Direct Write/Edit/Bash on `.claude/`, `.git/`, `.vscode/` works without prompts under `bypassPermissions` mode in CC v2.1.121+ (issue #1101).
|
|
819
831
|
-->
|
|
820
832
|
|
|
821
|
-
Current CC versions (>=2.1.121): direct Write/Edit/Bash on `.claude/**` paths are permitted
|
|
822
|
-
|
|
823
|
-
`mode: "bypassPermissions"` on every Agent tool call is still required (see "Universal bypassPermissions" above).
|
|
833
|
+
Current CC versions (>=2.1.121): direct Write/Edit/Bash on `.claude/**` paths are permitted when the effective permission mode is `bypassPermissions`. The `/tmp/*.sh` script wrapping pattern previously required is no longer necessary. Catastrophic operations (e.g., `rm -rf /`) remain blocked by independent safety guards.
|
|
824
834
|
|
|
825
835
|
<!-- DETAIL: legacy /tmp bypass pointer (historical)
|
|
826
836
|
**For CC < v2.1.121 only**: see git history of this rule for the legacy `/tmp/*.sh` bypass pattern (commit before v0.126.0).
|
|
@@ -861,7 +871,7 @@ After restart/compaction: re-read CLAUDE.md, all delegation rules still apply. N
|
|
|
861
871
|
| Unmatched specialized task | mgr-creator → dynamic agent creation |
|
|
862
872
|
|
|
863
873
|
**Rules:**
|
|
864
|
-
- All file modifications MUST be delegated (orchestrator only uses Read
|
|
874
|
+
- All file modifications MUST be delegated (orchestrator only uses read-only tools — Read, Glob/Grep when present, otherwise read-only Bash such as `git grep`/`find`)
|
|
865
875
|
- Use specialized agents, not general-purpose, when one exists
|
|
866
876
|
- general-purpose only for truly generic tasks (file moves, simple scripts)
|
|
867
877
|
- No exceptions for "small" or "quick" changes
|
|
@@ -926,7 +936,7 @@ The following paths MUST be created or structurally modified ONLY through `mgr-c
|
|
|
926
936
|
## Exception: Simple Tasks
|
|
927
937
|
|
|
928
938
|
Subagent NOT required for:
|
|
929
|
-
- Reading files for analysis (
|
|
939
|
+
- Reading files for analysis (read-only tools only — see Rules above; dedicated Glob/Grep may be absent)
|
|
930
940
|
- Simple file searches
|
|
931
941
|
- Direct questions answered by main conversation
|
|
932
942
|
|
|
@@ -1053,6 +1063,8 @@ See **R018 (MUST-agent-teams.md)** for the Detection table, complete decision ma
|
|
|
1053
1063
|
**Quick rule** (applies only when active): 3+ agents OR review cycle OR 2+ issues in same batch → use Agent Teams.
|
|
1054
1064
|
Using Agent tool when Agent Teams criteria are met needs correction per R018.
|
|
1055
1065
|
|
|
1066
|
+
Exception to the Core Rule ("Subagents MUST NOT spawn other subagents"), only when R018 Detection = Yes: Agent Teams members are peers, not hierarchical subagents (Agent Teams Exception — narrowed by #1817). When Detection = No, every agent spawned via the Agent tool is a subagent under the Core Rule. Members spawn sub-agents or message peers only if `Agent`/`SendMessage` are in their tool list; otherwise the orchestrator relays via files and spawns on their behalf (R018 「멤버 도구 부재 시 대체 규약」).
|
|
1067
|
+
|
|
1056
1068
|
<!-- DETAIL: Announcement Format
|
|
1057
1069
|
```
|
|
1058
1070
|
[Routing] Using {routing-skill} for {task}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
| Tier | Tools | Policy |
|
|
8
8
|
|------|-------|--------|
|
|
9
|
-
| 1: Always | Read, Glob
|
|
9
|
+
| 1: Always | Read, Glob‡, Grep‡, ToolSearch§ | Free use, read-only |
|
|
10
10
|
| 2: Default | Write, Edit, NotebookEdit | State changes explicitly, notify before modifying important files |
|
|
11
11
|
| 3: Context | Agent, Skill, EnterPlanMode, ExitPlanMode, EnterWorktree, ExitWorktree, LSP, Monitor, TodoWrite†, AskUserQuestion, PushNotification | Context-dependent, no user approval needed |
|
|
12
12
|
| 4: Approval | Bash, PowerShell, WebFetch, WebSearch | Request user approval on first use |
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
|
|
16
16
|
> **†** 현행 모델의 기본 실행 환경에 **존재하지 않는다** — 아래 v2.1.233 노트 참조. 이 표는 **도구 카탈로그**이지 가용성 보증이 아니므로, 규칙이 특정 도구 호출을 의무화하기 전에 실측(도구 목록 / `ToolSearch`)으로 존재를 확인한다.
|
|
17
17
|
|
|
18
|
+
> **‡** 네이티브 빌드(macOS/Linux)에서는 전용 `Glob`/`Grep`이 Bash 내장 `bfs`/`ugrep`으로 대체되고(CHANGELOG 2.1.117: "the `Glob` and `Grep` tools are replaced by embedded `bfs` and `ugrep` available through the Bash tool"), `--tools`로 명시하면 전용 도구가 제공된다(2.1.162: "explicitly listing Grep/Glob now provides the dedicated search tools on native builds with embedded search"). 실측(CC 2.1.289, 2026-10-05): frontmatter `tools:`에 Grep/Glob을 명시한 `qa-writer`는 전용 `Grep`/`Glob`을 받았고(Bash 없음), 명시 목록이 없는 메인 세션에는 없었다 — frontmatter 명시가 `--tools` 명시와 같은 효과라는 일반화는 이 1건에 근거한 추정이다. 전용 도구가 없으면 읽기 전용 Bash(`git grep`·`find`)로 대체한다(R005: 가용성 미확인 시 Bash 우선 #1307, 전수조사 `git grep` 표준 #1590). 이 대체는 Tier 1 작업을 Tier 4로 옮기므로 Tier 4 정책("Request user approval on first use")이 적용된다. Bash도, frontmatter에 명시된 해당 검색 도구도 없는 경우(예: `sys-naggy`는 Grep만 명시 — Glob 검색)에만 오케스트레이터가 사전 수집해 내용으로 전달한다(R010 「Known Limitations (Active Cache)」).
|
|
19
|
+
|
|
20
|
+
> **§** `ToolSearch`도 멤버 실행 환경에 없을 수 있다(#1817 QA teammate 관측) — 없으면 지연 도구를 로드할 수 없으므로 그 지연 도구는 부재로 취급한다(R018 「멤버 도구 부재 시 대체 규약」).
|
|
21
|
+
|
|
18
22
|
## File Access
|
|
19
23
|
|
|
20
24
|
| Operation | Allowed | Prohibited |
|
|
@@ -157,25 +161,24 @@ CHANGELOG v2.1.233 원문: *"Todo/task-tracking tools (TaskCreate/Get/Update/Lis
|
|
|
157
161
|
|
|
158
162
|
`CLAUDE_CODE_ENABLE_TODO_TOOLS=1`은 복구 수단이나 **환경 설정 사안**이므로 규칙이 그 설정을 전제하지 않는다. 공식 settings 문서(`code.claude.com/docs/en/settings`)에는 2026-08-15 기준 미수록 — 현재 근거는 CHANGELOG 원문 + 위 실측이다.
|
|
159
163
|
|
|
160
|
-
Origin: #1582. Cross-ref: R018(Member TaskUpdate Discipline
|
|
164
|
+
Origin: #1582. Cross-ref: R018 「Task 도구 부재 시 대체 규약」(Member TaskUpdate Discipline 하위 절), R020("도구가 있다"는 가정도 실측 대상).
|
|
161
165
|
-->
|
|
162
166
|
`TeamCreate`/`TeamDelete`도 별도로 부재 — R018은 이 환경에서 비활성입니다(R018 Detection). 규칙은 **존재하지 않는 도구의 호출을 의무화하지 않으며**, 도구 의존 의무를 쓸 때는 부재 시 대체 규약을 함께 규정합니다(R018 Member TaskUpdate Discipline이 그 예). `CLAUDE_CODE_ENABLE_TODO_TOOLS=1`은 환경 설정 사안이므로 규칙이 전제하지 않습니다. Origin: #1582.
|
|
163
167
|
|
|
164
168
|
## Agent Tool Permission Mode
|
|
165
169
|
|
|
166
|
-
> Canonical source: R010 (MUST-orchestrator-coordination.md) "Universal bypassPermissions" owns the
|
|
167
|
-
|
|
168
|
-
**주의**: v2.1.212+부터 `mode` 파라미터는 무시되며 유효 모드는 부모 세션이 결정합니다 — 실측은 R010 Self-Check를 참조합니다.
|
|
170
|
+
> Canonical source: R010 (MUST-orchestrator-coordination.md) "Universal bypassPermissions" owns the guidance, self-check, and version history. Core: below CC 2.1.212, per-call `mode: "bypassPermissions"` is required (the Agent tool's default `acceptEdits` overrides frontmatter `permissionMode`); from 2.1.212 it is ignored and subagents inherit the parent session's mode, which frontmatter `permissionMode` may override. Keep passing `mode` for compatibility, but measure the effective mode before unattended runs (R010 Self-Check 1).
|
|
169
171
|
|
|
170
172
|
<!-- DETAIL: Agent tool mode deprecation rationale (canonical: R010)
|
|
171
173
|
> **v2.1.212+**: CC가 Agent(구 Task) tool의 `mode` 파라미터를 deprecated 처리했습니다(이제 무시) — subagent는 부모 세션의 permission mode를 기본 상속합니다. 위 canonical 요약의 default `mode`(`acceptEdits`)가 frontmatter `permissionMode`를 override한다는 서술 및 항상 `mode: "bypassPermissions"`를 넘기라는 요건은 이 버전부터 stale이며(파라미터가 무시됨), 무인 실행의 실질 게이트는 부모 세션의 permission mode입니다. 요건 재조정은 R010 "Universal bypassPermissions"가 canonical — R002는 이 flag만 유지합니다.
|
|
172
174
|
-->
|
|
173
175
|
|
|
174
176
|
<!-- DETAIL: defaultMode project-scope-ignored rationale (canonical: R010)
|
|
175
|
-
> **v2.1.257+**:
|
|
176
|
-
>
|
|
177
|
-
> permission
|
|
178
|
-
>
|
|
177
|
+
> **v2.1.257+**: `.claude/settings.json`·`.claude/settings.local.json`의 `defaultMode: "bypassPermissions"`
|
|
178
|
+
> 값이 `"auto"`처럼 무시됩니다(CHANGELOG 2.1.257 — 다른 값은 이 항목의 대상이 아님; bypass는 user/managed
|
|
179
|
+
> settings 또는 `--permission-mode`로 지정). 위 v2.1.212 노트가 "무인 실행의 실질 게이트는 부모 세션의
|
|
180
|
+
> permission mode"라고 정정했는데, **그 부모 세션 모드를 프로젝트 settings로 `bypassPermissions`로
|
|
181
|
+
> 지정하는 경로가 이 버전에서 끊겼습니다** — 이 파일 상단 「Deny Rule Glob Patterns」의 v2.1.214 노트(allow 규칙만
|
|
179
182
|
> `<cwd>`로 좁아진 비대칭)와 같은 계열의 **project-scope 축소** 흐름입니다. Canonical owner 는
|
|
180
183
|
> R010 "Universal bypassPermissions" — 상세와 실측 절차는 그쪽을 참조합니다. Origin: #1644.
|
|
181
184
|
-->
|
|
@@ -109,11 +109,11 @@ When a synthesized harness exists for an agent (`.claude/outputs/harnesses/{agen
|
|
|
109
109
|
|
|
110
110
|
### Tool: Writing artifacts under .claude/outputs/
|
|
111
111
|
|
|
112
|
-
Under `mode
|
|
112
|
+
Under the `bypassPermissions` permission mode, direct Write/Edit/Bash on `.claude/**` paths is permitted (CC v2.1.121+, #1101) — no `/tmp/*.sh` wrapping is needed.
|
|
113
113
|
|
|
114
114
|
To write action-validator results under `.claude/outputs/sessions/`:
|
|
115
115
|
|
|
116
|
-
1. Write the artifact body directly to `.claude/outputs/sessions/$(date +%Y-%m-%d)/action-validator-$(date +%H%M%S).md` with the Write tool (
|
|
116
|
+
1. Write the artifact body directly to `.claude/outputs/sessions/$(date +%Y-%m-%d)/action-validator-$(date +%H%M%S).md` with the Write tool (under the `bypassPermissions` permission mode, R010)
|
|
117
117
|
2. Read-only Bash on `.claude/outputs/` (e.g., `cat`, `head`, `wc`) is allowed for verification
|
|
118
118
|
|
|
119
119
|
Reference: R006/R010 sensitive-path handling (CC v2.1.121+), #1101.
|
|
@@ -187,11 +187,11 @@ Append a record to `.claude/outputs/harness-adaptations/YYYY-MM-DD.md`:
|
|
|
187
187
|
|
|
188
188
|
### Tool: Writing artifacts under .claude/outputs/
|
|
189
189
|
|
|
190
|
-
Under `mode
|
|
190
|
+
Under the `bypassPermissions` permission mode, direct Write/Edit/Bash on `.claude/**` paths is permitted (CC v2.1.121+, #1101) — no `/tmp/*.sh` wrapping is needed.
|
|
191
191
|
|
|
192
192
|
To write adaptive-harness results under `.claude/outputs/`:
|
|
193
193
|
|
|
194
|
-
1. Write the artifact body directly to `.claude/outputs/harness-adaptations/$(date +%Y-%m-%d).md` with the Write tool (
|
|
194
|
+
1. Write the artifact body directly to `.claude/outputs/harness-adaptations/$(date +%Y-%m-%d).md` with the Write tool (under the `bypassPermissions` permission mode, R010)
|
|
195
195
|
2. Read-only Bash on `.claude/outputs/` (e.g., `cat`, `head`, `wc`) is allowed for verification
|
|
196
196
|
|
|
197
197
|
Reference: R006/R010 sensitive-path handling (CC v2.1.121+), #1101.
|
|
@@ -102,4 +102,4 @@ Refs: #1171 (CRG 통합), #1180 (본 cross-ref 추가)
|
|
|
102
102
|
|
|
103
103
|
## Permission Mode
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
@@ -75,11 +75,11 @@ Use this taxonomy to **select representative tasks per category** when building
|
|
|
75
75
|
|
|
76
76
|
### Tool: Writing artifacts under .claude/outputs/
|
|
77
77
|
|
|
78
|
-
Under `mode
|
|
78
|
+
Under the `bypassPermissions` permission mode, direct Write/Edit/Bash on `.claude/**` paths is permitted (CC v2.1.121+, #1101) — no `/tmp/*.sh` wrapping is needed.
|
|
79
79
|
|
|
80
80
|
To write eval trajectories or result reports under `.claude/outputs/evals/`:
|
|
81
81
|
|
|
82
|
-
1. Write the artifact body directly to `.claude/outputs/evals/{trajectories,sessions}/...` with the Write tool (
|
|
82
|
+
1. Write the artifact body directly to `.claude/outputs/evals/{trajectories,sessions}/...` with the Write tool (under the `bypassPermissions` permission mode, R010)
|
|
83
83
|
2. Read-only Bash on `.claude/outputs/` (e.g., `cat`, `head`, `wc`) is allowed for verification
|
|
84
84
|
|
|
85
85
|
Reference: R006/R010 sensitive-path handling (CC v2.1.121+), #1101.
|
|
@@ -9,7 +9,7 @@ context: fork
|
|
|
9
9
|
|
|
10
10
|
When this skill spawns a subagent via the Agent tool, the spawned prompt MUST include this directive verbatim (or equivalent):
|
|
11
11
|
|
|
12
|
-
>
|
|
12
|
+
> 호환을 위해 Agent 호출에 `mode: "bypassPermissions"`를 전달하십시오. CC 2.1.212 미만에서는 필수이며(호출별 기본값 `acceptEdits`가 에이전트 frontmatter `permissionMode`를 덮어씁니다), 2.1.212+에서는 무시되고 서브에이전트가 부모 세션의 권한 모드를 상속합니다(에이전트 frontmatter `permissionMode`로 조정 가능). 무인 실행 전 유효 모드 확인은 R010 「Universal bypassPermissions」 참조. bypassPermissions 세션에서 서브에이전트는 .claude/ 경로에 직접 Write/Edit/Bash를 사용합니다(/tmp 우회 불필요, CC v2.1.121+).
|
|
13
13
|
|
|
14
14
|
This directive is preserved inline because Agent-tool prompt synthesis can drop SKILL.md notes; inline mandatory directives survive (#1046 lesson).
|
|
15
15
|
|
|
@@ -75,7 +75,7 @@ When Detection resolves to **No**, skip this step — route via the Agent tool u
|
|
|
75
75
|
### Step 2: Expert Selection
|
|
76
76
|
Route to appropriate DE expert based on tool/framework detection.
|
|
77
77
|
|
|
78
|
-
> **Permission Mode**:
|
|
78
|
+
> **Permission Mode**: Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
79
79
|
|
|
80
80
|
### Step 4: Ontology-RAG Enrichment (R019)
|
|
81
81
|
|
|
@@ -81,14 +81,14 @@ When a plan's Phase 1/2 measures a search or retrieval experiment (a new lane, r
|
|
|
81
81
|
|
|
82
82
|
Phase 3 verification report path: `.claude/outputs/sessions/{YYYY-MM-DD}/deep-plan-{HHmmss}.md`
|
|
83
83
|
|
|
84
|
-
Under `mode
|
|
84
|
+
Under the `bypassPermissions` permission mode, subagents write directly to `.claude/outputs/` with Write/Edit — no temp-script wrapping is needed (CC v2.1.121+, #1101). When spawning the final synthesis agent to write this artifact, include verbatim in the agent prompt:
|
|
85
85
|
|
|
86
86
|
```
|
|
87
87
|
**Artifact output (for this task)**
|
|
88
88
|
|
|
89
89
|
Write the verification report to `.claude/outputs/sessions/<date>/deep-plan-<HHmmss>.md`
|
|
90
|
-
using the Write tool directly (create the directory if needed).
|
|
91
|
-
|
|
90
|
+
using the Write tool directly (create the directory if needed). If your session runs under the
|
|
91
|
+
`bypassPermissions` permission mode, direct Write/Edit on `.claude/` is permitted.
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
See R006 "Sensitive Path Handling" (CC v2.1.121+ direct-write convention).
|
|
@@ -113,4 +113,4 @@ After PASS verdict:
|
|
|
113
113
|
|
|
114
114
|
## Permission Mode
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
@@ -84,9 +84,9 @@ Run these checks before declaring release READY. Any match is a release blocker.
|
|
|
84
84
|
|
|
85
85
|
| Guard | Detection Command | Severity | Remediation |
|
|
86
86
|
|-------|-------------------|----------|-------------|
|
|
87
|
-
| Residual deprecated `/tmp` sensitive-path bypass narrative | `grep -rnE -e 'regardless of[[:space:]]+.?bypassPermissions' -e '(MUST|MANDATORY|Mandatory)[^\n]{0,80}/tmp/\*\.sh' -e '/tmp/\*\.sh[^\n]{0,80}(MANDATORY|MUST be used|bypass script)' .claude/skills/ templates/.claude/skills/ .claude/agents/ templates/.claude/agents/ 2>/dev/null` | **BLOCK** | Remove the deprecated temp-script bypass narrative — it was retired in CC v2.1.121 (#1101). Under `mode
|
|
87
|
+
| Residual deprecated `/tmp` sensitive-path bypass narrative | `grep -rnE -e 'regardless of[[:space:]]+.?bypassPermissions' -e '(MUST|MANDATORY|Mandatory)[^\n]{0,80}/tmp/\*\.sh' -e '/tmp/\*\.sh[^\n]{0,80}(MANDATORY|MUST be used|bypass script)' .claude/skills/ templates/.claude/skills/ .claude/agents/ templates/.claude/agents/ 2>/dev/null` | **BLOCK** | Remove the deprecated temp-script bypass narrative — it was retired in CC v2.1.121 (#1101). Under the `bypassPermissions` permission mode, write directly to `.claude/` with Write/Edit. See R006 "Sensitive Path Handling" |
|
|
88
88
|
|
|
89
|
-
> **Why**: The temp-script sensitive-path bypass for `.claude/` paths was deprecated in CC v2.1.121 (2026-04-28, #1101). Direct Write/Edit/Bash on `.claude/**` works under `mode
|
|
89
|
+
> **Why**: The temp-script sensitive-path bypass for `.claude/` paths was deprecated in CC v2.1.121 (2026-04-28, #1101). Direct Write/Edit/Bash on `.claude/**` works under the `bypassPermissions` permission mode; only catastrophic shell operations (`rm -rf /`) remain independently blocked. Residual bypass procedures or false "guard blocks bypassPermissions" claims in skills/agents are now defects — this guard catches them with a cheap deterministic grep (R023 shift-left: catch stale platform procedures before they reach expensive review).
|
|
90
90
|
|
|
91
91
|
## Output Format
|
|
92
92
|
|
|
@@ -122,4 +122,4 @@ Run these checks before declaring release READY. Any match is a release blocker.
|
|
|
122
122
|
|
|
123
123
|
## Permission Mode
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
@@ -97,7 +97,7 @@ User selects preferred variation(s). Selected design can be:
|
|
|
97
97
|
|
|
98
98
|
## Permission Mode
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
101
101
|
|
|
102
102
|
## Source
|
|
103
103
|
|
|
@@ -9,7 +9,7 @@ context: fork
|
|
|
9
9
|
|
|
10
10
|
When this skill spawns a subagent via the Agent tool, the spawned prompt MUST include this directive verbatim (or equivalent):
|
|
11
11
|
|
|
12
|
-
>
|
|
12
|
+
> 호환을 위해 Agent 호출에 `mode: "bypassPermissions"`를 전달하십시오. CC 2.1.212 미만에서는 필수이며(호출별 기본값 `acceptEdits`가 에이전트 frontmatter `permissionMode`를 덮어씁니다), 2.1.212+에서는 무시되고 서브에이전트가 부모 세션의 권한 모드를 상속합니다(에이전트 frontmatter `permissionMode`로 조정 가능). 무인 실행 전 유효 모드 확인은 R010 「Universal bypassPermissions」 참조. bypassPermissions 세션에서 서브에이전트는 .claude/ 경로에 직접 Write/Edit/Bash를 사용합니다(/tmp 우회 불필요, CC v2.1.121+).
|
|
13
13
|
|
|
14
14
|
This directive is preserved inline because Agent-tool prompt synthesis can drop SKILL.md notes; inline mandatory directives survive (#1046 lesson).
|
|
15
15
|
|
|
@@ -114,7 +114,7 @@ When Detection resolves to **No**, skip this step — route via the Agent tool u
|
|
|
114
114
|
### Step 2: Expert Agent Selection
|
|
115
115
|
Route to appropriate language/framework expert based on file extension and keyword mapping.
|
|
116
116
|
|
|
117
|
-
> **Permission Mode**:
|
|
117
|
+
> **Permission Mode**: Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
118
118
|
|
|
119
119
|
### Step 4: Ontology-RAG Enrichment (R019)
|
|
120
120
|
|
|
@@ -116,11 +116,11 @@ If only PASS/INFO: proceed automatically.
|
|
|
116
116
|
|
|
117
117
|
### Tool: Writing artifacts under .claude/outputs/
|
|
118
118
|
|
|
119
|
-
Under `mode
|
|
119
|
+
Under the `bypassPermissions` permission mode, direct Write/Edit/Bash on `.claude/**` paths is permitted (CC v2.1.121+, #1101) — no `/tmp/*.sh` wrapping is needed.
|
|
120
120
|
|
|
121
121
|
To write dev-review results under `.claude/outputs/sessions/`:
|
|
122
122
|
|
|
123
|
-
1. Write the artifact body directly to `.claude/outputs/sessions/$(date +%Y-%m-%d)/dev-review-$(date +%H%M%S).md` with the Write tool (
|
|
123
|
+
1. Write the artifact body directly to `.claude/outputs/sessions/$(date +%Y-%m-%d)/dev-review-$(date +%H%M%S).md` with the Write tool (under the `bypassPermissions` permission mode, R010)
|
|
124
124
|
2. Read-only Bash on `.claude/outputs/` (e.g., `cat`, `head`, `wc`) is allowed for verification
|
|
125
125
|
|
|
126
126
|
Reference: R006/R010 sensitive-path handling (CC v2.1.121+), #1101.
|
|
@@ -420,7 +420,7 @@ Integration: Works with [impeccable-design](/skills/impeccable-design) skill for
|
|
|
420
420
|
|
|
421
421
|
The `harness-eval` skill provides a structured 15-task SE benchmark rubric that can be used as a preset for the evaluator-optimizer pipeline. When invoked via `/harness-eval`, the harness rubric dimensions (Test Coverage 30%, Architecture 25%, Error Handling 25%, Extensibility 20%) are loaded as the sprint contract criteria.
|
|
422
422
|
|
|
423
|
-
|
|
423
|
+
Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
424
424
|
|
|
425
425
|
## Efficiency Gate (added v0.113.0, #1025)
|
|
426
426
|
|
|
@@ -236,11 +236,10 @@ If any of those underlying skills evolve, FSD automatically benefits — its onl
|
|
|
236
236
|
|
|
237
237
|
## Permission Mode Note
|
|
238
238
|
|
|
239
|
-
|
|
239
|
+
호환을 위해 Agent 호출에 `mode: "bypassPermissions"`를 전달하십시오. CC 2.1.212 미만에서는 필수이며(호출별 기본값 `acceptEdits`가 에이전트 frontmatter `permissionMode`를 덮어씁니다), 2.1.212+에서는 무시되고 서브에이전트가 부모 세션의 권한 모드를 상속합니다(에이전트 frontmatter `permissionMode`로 조정 가능). 무인 실행 전 유효 모드 확인은 R010 「Universal bypassPermissions」 참조.
|
|
240
240
|
|
|
241
|
-
⚠
|
|
242
|
-
|
|
243
|
-
자율 루프 진입 전에 유효 모드를 실측한다:
|
|
241
|
+
⚠ 프로젝트 scope `permissions.defaultMode` 역시 CC v2.1.257+ 에서 무시됩니다(#1644). 즉 `mode` 파라미터를 넘겼다는 사실은 **무인 실행의 증거가 아닙니다**.
|
|
242
|
+
자율 루프 진입 전에 유효 모드를 실측합니다:
|
|
244
243
|
|
|
245
244
|
```bash
|
|
246
245
|
jq -r '.permissions.defaultMode // "unset"' ~/.claude/settings.json 2>/dev/null || echo unset
|
|
@@ -92,7 +92,7 @@ Results saved to `.claude/outputs/sessions/{YYYY-MM-DD}/harness-eval-{HHmmss}.md
|
|
|
92
92
|
|
|
93
93
|
### Tool: Writing artifacts under .claude/outputs/
|
|
94
94
|
|
|
95
|
-
Under `mode
|
|
95
|
+
Under the `bypassPermissions` permission mode, direct Write/Edit/Bash on `.claude/**` paths (including `.claude/outputs/sessions/`) is permitted (CC v2.1.121+, #1101) — no `/tmp` wrapping is needed.
|
|
96
96
|
|
|
97
97
|
Write harness-eval results directly to `.claude/outputs/sessions/$(date +%Y-%m-%d)/harness-eval-$(date +%H%M%S).md`. Read-only Bash on `.claude/outputs/` (e.g., `cat`, `head`, `wc`) is allowed for verification. Catastrophic shell operations (e.g., `rm -rf /`) remain blocked by independent safety guards. For CC < v2.1.121, see git history for the legacy `/tmp/*.sh` bypass pattern.
|
|
98
98
|
|
|
@@ -96,7 +96,7 @@ harness:
|
|
|
96
96
|
|
|
97
97
|
### Tool: Writing artifacts under .claude/outputs/
|
|
98
98
|
|
|
99
|
-
Under `mode
|
|
99
|
+
Under the `bypassPermissions` permission mode, direct Write/Edit/Bash on `.claude/**` paths (including `.claude/outputs/sessions/`) is permitted (CC v2.1.121+, #1101) — no `/tmp` wrapping is needed.
|
|
100
100
|
|
|
101
101
|
Write harness-synthesizer results directly to `.claude/outputs/sessions/$(date +%Y-%m-%d)/harness-synthesizer-$(date +%H%M%S).md`. Read-only Bash on `.claude/outputs/` (e.g., `cat`, `head`, `wc`) is allowed for verification. Catastrophic shell operations (e.g., `rm -rf /`) remain blocked by independent safety guards. For CC < v2.1.121, see git history for the legacy `/tmp/*.sh` bypass pattern.
|
|
102
102
|
|
|
@@ -101,7 +101,7 @@ Categorize each finding with the following structure (mirror #1266 format):
|
|
|
101
101
|
|-------|----------|---------|
|
|
102
102
|
| Critical | Safety classifier trip, credential exposure, scope-creep into privileged domains, working-tree loss | R001 violation, secret dump, unauthorized infra action |
|
|
103
103
|
| High | Rule violation with downstream impact, hallucinated fact acted upon, premature hypothesis causing permanent change | R020 Parallel Read+Change, wrong root cause → wrong fix |
|
|
104
|
-
| Medium | Process gap, missed convention, advisory rule ignored | R007 header missing,
|
|
104
|
+
| Medium | Process gap, missed convention, advisory rule ignored | R007 header missing, effective permission mode not verified before unattended run, count sync missed |
|
|
105
105
|
| Low | Minor style drift, non-impactful oversight | honorific regression, ecomode token waste |
|
|
106
106
|
|
|
107
107
|
**Mistake categories to look for:**
|
|
@@ -112,7 +112,7 @@ Categorize each finding with the following structure (mirror #1266 format):
|
|
|
112
112
|
| Scope-creep | Subagent task expanding beyond its named scope (R010 Subagent Scope-Creep STOP Protocol) |
|
|
113
113
|
| Hallucinated facts | External UI fields stated as fact (R003 Unverifiable External Product UI), in-cluster hostnames, unverified URLs |
|
|
114
114
|
| Premature hypotheses | Diagnosis before reading evidence (R020 Read-Before-Characterize), parallel Read+permanent-change dispatch (R020 Variant) |
|
|
115
|
-
| Missed conventions | Count sync drift (3-way sync), template mirror omitted,
|
|
115
|
+
| Missed conventions | Count sync drift (3-way sync), template mirror omitted, effective permission mode not verified before unattended run |
|
|
116
116
|
| Over-claim completion | [Done] without verification (R020), test-skip masking failures |
|
|
117
117
|
|
|
118
118
|
**Do NOT over-claim.** If evidence for a finding is weak or based on recall only, mark it `[recall, low-confidence]` and note what would be needed to confirm it. R020 read-before-characterize applies to this analysis itself.
|
|
@@ -224,7 +224,7 @@ If Phase 5 is skipped (`--dry-run`), the draft issue body is written to this art
|
|
|
224
224
|
|
|
225
225
|
## Permission Mode Note
|
|
226
226
|
|
|
227
|
-
This skill does not spawn subagents directly
|
|
227
|
+
This skill does not spawn subagents directly, but future versions may delegate analysis to subagents. Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
228
228
|
|
|
229
229
|
## Context Fork Note
|
|
230
230
|
|
|
@@ -32,7 +32,9 @@ Extract the core intent from the natural language input.
|
|
|
32
32
|
|
|
33
33
|
### Phase 3: Feasibility Analysis
|
|
34
34
|
|
|
35
|
-
Analyze using a sonnet agent
|
|
35
|
+
Analyze using a sonnet agent:
|
|
36
|
+
|
|
37
|
+
Pass `mode: "bypassPermissions"` on Agent calls for compatibility: it is required on CC < 2.1.212 (the per-call default, `acceptEdits`, overrides agent frontmatter `permissionMode`) and ignored on 2.1.212+, where subagents inherit the parent session's permission mode (adjustable via agent frontmatter `permissionMode`). Verify the effective mode before unattended runs: see R010 "Universal bypassPermissions".
|
|
36
38
|
|
|
37
39
|
- **Scope**: Which modules/files would be affected
|
|
38
40
|
- **Complexity**: XS/S/M/L effort estimate
|
|
@@ -73,7 +75,7 @@ The JSON block MUST be wrapped in triple backtick json fence for parsing.
|
|
|
73
75
|
| Rule | How |
|
|
74
76
|
|------|-----|
|
|
75
77
|
| R009 | Single agent for analysis |
|
|
76
|
-
| R010 | Orchestrator manages phases; analysis delegated to agent
|
|
78
|
+
| R010 | Orchestrator manages phases; analysis delegated to an agent (permission mode per R010 "Universal bypassPermissions") |
|
|
77
79
|
|
|
78
80
|
## Output Format
|
|
79
81
|
|