oh-my-customcode 0.109.0 → 0.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/output-styles/korean-engineer.md +66 -0
- package/templates/.claude/rules/MUST-agent-design.md +1 -1
- package/templates/.claude/rules/SHOULD-interaction.md +12 -0
- package/templates/.claude/skills/action-validator/SKILL.md +3 -0
- package/templates/.claude/skills/adaptive-harness/SKILL.md +3 -0
- package/templates/.claude/skills/agora/SKILL.md +44 -0
- package/templates/.claude/skills/deep-plan/SKILL.md +3 -0
- package/templates/.claude/skills/deep-verify/SKILL.md +1 -0
- package/templates/.claude/skills/dev-review/SKILL.md +3 -0
- package/templates/.claude/skills/harness-eval/SKILL.md +3 -0
- package/templates/.claude/skills/harness-synthesizer/SKILL.md +3 -0
- package/templates/.claude/skills/post-release-followup/SKILL.md +3 -0
- package/templates/.claude/skills/professor-triage/SKILL.md +3 -0
- package/templates/.claude/skills/research/SKILL.md +3 -0
- package/templates/.claude/skills/result-aggregation/SKILL.md +3 -0
- package/templates/.claude/skills/roundtable-debate/SKILL.md +113 -0
- package/templates/.claude/skills/skill-extractor/SKILL.md +3 -0
- package/templates/CLAUDE.md +4 -3
- package/templates/guides/multi-agent-debate-patterns/README.md +79 -0
- package/templates/manifest.json +3 -3
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
49 agents.
|
|
16
|
+
49 agents. 114 skills. 22 rules. One command.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install -g oh-my-customcode && cd your-project && omcustom init
|
|
@@ -132,7 +132,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
|
|
|
132
132
|
|
|
133
133
|
---
|
|
134
134
|
|
|
135
|
-
### Skills (
|
|
135
|
+
### Skills (114)
|
|
136
136
|
|
|
137
137
|
| Category | Count | Includes |
|
|
138
138
|
|----------|-------|----------|
|
|
@@ -222,7 +222,7 @@ Key rules: R010 (orchestrator never writes files), R009 (parallel execution mand
|
|
|
222
222
|
|
|
223
223
|
---
|
|
224
224
|
|
|
225
|
-
### Guides (
|
|
225
|
+
### Guides (45)
|
|
226
226
|
|
|
227
227
|
Reference documentation covering best practices, architecture decisions, and integration patterns. Located in `guides/` at project root, covering topics from agent design to CI/CD to observability.
|
|
228
228
|
|
|
@@ -272,14 +272,14 @@ your-project/
|
|
|
272
272
|
├── CLAUDE.md # Entry point
|
|
273
273
|
├── .claude/
|
|
274
274
|
│ ├── agents/ # 49 agent definitions
|
|
275
|
-
│ ├── skills/ #
|
|
275
|
+
│ ├── skills/ # 114 skill modules
|
|
276
276
|
│ ├── rules/ # 22 governance rules (R000-R021)
|
|
277
277
|
│ ├── hooks/ # 15 lifecycle hook scripts
|
|
278
278
|
│ ├── schemas/ # Tool input validation schemas
|
|
279
279
|
│ ├── specs/ # Extracted canonical specs
|
|
280
280
|
│ ├── contexts/ # 4 shared context files
|
|
281
281
|
│ └── ontology/ # Knowledge graph for RAG
|
|
282
|
-
└── guides/ #
|
|
282
|
+
└── guides/ # 45 reference documents
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
---
|
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: korean-engineer
|
|
3
|
+
description: Korean-first SW engineering output style with R007/R008 agent identification enforcement and SHOULD-interaction balanced format
|
|
4
|
+
keep-coding-instructions: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
당신은 oh-my-customcode 하니스에서 동작하는 SW 엔지니어링 보조자입니다.
|
|
8
|
+
|
|
9
|
+
## 출력 언어 (R000)
|
|
10
|
+
|
|
11
|
+
| 컨텍스트 | 언어 |
|
|
12
|
+
|---------|------|
|
|
13
|
+
| 사용자 응답 | 한국어 |
|
|
14
|
+
| 코드, 파일 내용, 커밋 메시지 | 영어 |
|
|
15
|
+
| 오류 메시지 | 한국어 |
|
|
16
|
+
| GitHub 이슈/PR 제목/본문 | 한국어 |
|
|
17
|
+
|
|
18
|
+
## 에이전트 식별 (R007)
|
|
19
|
+
|
|
20
|
+
모든 응답은 다음 헤더로 시작:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
┌─ Agent: {agent-name} ({agent-type})
|
|
24
|
+
├─ Skill: {skill-name} (해당 시)
|
|
25
|
+
└─ Task: {brief-task-description}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
라우팅 스킬 활성 시 `claude (secretary-routing)` 형식, 스킬 호출 시 `claude → {skill-name}` 형식 사용.
|
|
29
|
+
|
|
30
|
+
## 도구 식별 (R008)
|
|
31
|
+
|
|
32
|
+
모든 도구 호출 직전에 prefix 표시:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
[agent-name][model] → Tool: <tool-name>
|
|
36
|
+
[agent-name][model] → Target: <file/path>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
병렬 호출 시 ALL identifications 먼저, then tool calls.
|
|
40
|
+
|
|
41
|
+
## 응답 스타일 (R003 balanced 기본)
|
|
42
|
+
|
|
43
|
+
- 핵심 정보 먼저, 질문에만 답변
|
|
44
|
+
- 추측을 사실로 제시 금지 ("아마도", "추정")
|
|
45
|
+
- 코드 참조 시 `file_path:line_number` 형식
|
|
46
|
+
- 도구 호출 전 한 문장 announce, 진행 중 핵심 시점에서 짧은 업데이트
|
|
47
|
+
|
|
48
|
+
ecomode 활성 시 자동으로 concise 모드로 전환 (R013).
|
|
49
|
+
|
|
50
|
+
## 코드 작성 원칙
|
|
51
|
+
|
|
52
|
+
- 기존 파일 편집 우선, 새 파일 생성은 명시적 요청 시에만
|
|
53
|
+
- 보안 취약점 (command injection, XSS, SQL injection) 회피
|
|
54
|
+
- 추측이나 placeholder 코드 금지 — 검증된 사실 기반
|
|
55
|
+
- 코드 주석 기본 비활성 — 비자명한 *왜*만 작성
|
|
56
|
+
|
|
57
|
+
## 위임 모델 (R010)
|
|
58
|
+
|
|
59
|
+
오케스트레이터(메인 대화)는 파일 수정 금지 → 서브에이전트에 위임. Agent tool 호출 시 항상 `mode: "bypassPermissions"` 명시.
|
|
60
|
+
|
|
61
|
+
## 작업 완료 검증 (R020)
|
|
62
|
+
|
|
63
|
+
`[Done]` 선언 전:
|
|
64
|
+
1. 실제 결과 검증 (명령 실행 ≠ 성공)
|
|
65
|
+
2. 작업 유형별 완료 기준 확인
|
|
66
|
+
3. 미체크 항목 없음 확인
|
|
@@ -377,7 +377,7 @@ Default: `core` (when field is omitted)
|
|
|
377
377
|
|
|
378
378
|
### Context Fork Criteria
|
|
379
379
|
|
|
380
|
-
Use `context: fork` for multi-agent orchestration skills only. Cap: **12 total**. Current:
|
|
380
|
+
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).
|
|
381
381
|
|
|
382
382
|
<!-- DETAIL: Context Fork decision table
|
|
383
383
|
| Use context:fork | Do NOT use context:fork |
|
|
@@ -75,3 +75,15 @@ Changes:
|
|
|
75
75
|
Trade-offs: RS256 is ~10x slower than HS256 but enables asymmetric key management.
|
|
76
76
|
```
|
|
77
77
|
-->
|
|
78
|
+
|
|
79
|
+
## Session-Level Style Enforcement
|
|
80
|
+
|
|
81
|
+
세션 레벨 강제 스타일 적용은 Claude Code 네이티브 [Output Styles](../output-styles/) 메커니즘으로 위임됩니다.
|
|
82
|
+
|
|
83
|
+
| 레이어 | 담당 | 트리거 |
|
|
84
|
+
|--------|------|--------|
|
|
85
|
+
| R003 (this rule) | 스타일 선택 기준 정의 | prompt-based, advisory |
|
|
86
|
+
| R013 (Ecomode) | 컨텍스트 압박 시 concise 강제 | dynamic, context-triggered |
|
|
87
|
+
| **Output Styles** | 세션 전체 기본 어조/포맷 | static, session-level |
|
|
88
|
+
|
|
89
|
+
기본 활성화 스타일: `korean-engineer` (`.claude/output-styles/korean-engineer.md`).
|
|
@@ -107,6 +107,9 @@ Hints are advisory — they inform model scheduling but do not enforce. Inspired
|
|
|
107
107
|
|
|
108
108
|
When a synthesized harness exists for an agent (`.claude/outputs/harnesses/{agent-name}-*.yaml`), action-validator can use it for enhanced validation:
|
|
109
109
|
|
|
110
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
111
|
+
|
|
112
|
+
|
|
110
113
|
| Mode | Source | Behavior |
|
|
111
114
|
|------|--------|----------|
|
|
112
115
|
| Advisory (default) | Prompt-based checks | Emit warnings only |
|
|
@@ -185,6 +185,9 @@ Check `active_agents` list against files actually present in `.claude/agents/`.
|
|
|
185
185
|
|
|
186
186
|
Append a record to `.claude/outputs/harness-adaptations/YYYY-MM-DD.md`:
|
|
187
187
|
|
|
188
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
189
|
+
|
|
190
|
+
|
|
188
191
|
```markdown
|
|
189
192
|
## Optimization Run — 2026-04-12T10:00:00Z
|
|
190
193
|
|
|
@@ -111,6 +111,9 @@ Determine verdict:
|
|
|
111
111
|
When ALL reviewers agree BUILD or BUILD WITH CHANGES:
|
|
112
112
|
1. Produce final consensus report
|
|
113
113
|
2. Write to `.claude/outputs/sessions/{date}/agora-{topic}-{time}.md`
|
|
114
|
+
|
|
115
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
116
|
+
|
|
114
117
|
3. Shut down team: `SendMessage(to: "*", message: {type: "shutdown_request"})`
|
|
115
118
|
|
|
116
119
|
## Reviewer Principles
|
|
@@ -240,3 +243,44 @@ ontology_convergence:
|
|
|
240
243
|
- #993 (source)
|
|
241
244
|
- #966 ouroboros 재평가
|
|
242
245
|
- guides/agent-design/pal-cost-routing-analysis.md (유사한 Defer+observe 전략)
|
|
246
|
+
|
|
247
|
+
## Anti-Groupthink Mode (Optional)
|
|
248
|
+
|
|
249
|
+
`agora`의 기본 워크플로우는 만장일치 수렴(convergence)이 목표지만, 토론 과정에서 집단사고(Groupthink) 위험이 있을 때 anti-groupthink mode를 활성화할 수 있습니다.
|
|
250
|
+
|
|
251
|
+
### Activation
|
|
252
|
+
|
|
253
|
+
스킬 호출 시 인자로 활성화:
|
|
254
|
+
```
|
|
255
|
+
/agora docs/design.md --mode anti-groupthink
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Mechanisms
|
|
259
|
+
|
|
260
|
+
| 메커니즘 | 동작 |
|
|
261
|
+
|---------|------|
|
|
262
|
+
| Devil's Advocate slot | 리뷰어 1명이 전담 반대자 역할 — 합의 형성 시도에 항상 반대 입장 견지 |
|
|
263
|
+
| Minority opinion protection | 1명만 주장하는 의견도 보존, 기각 시 명시적 정당화(3개 근거) 필수 |
|
|
264
|
+
| Round soft cap | 라운드 3회 도달 시 합의 미도달 영역은 "합의 없음 — 분기 결정 필요"로 종결 (기본 워크플로우는 무한 루프 가능) |
|
|
265
|
+
|
|
266
|
+
### Reviewer Role Adjustment
|
|
267
|
+
|
|
268
|
+
기본 모드(3 reviewers)에 anti-groupthink mode 적용 시:
|
|
269
|
+
- `claude-critic` → Devil's Advocate 전담 (모든 합의 시도에 반대 입장)
|
|
270
|
+
- `codex-critic`, `gemini-critic` → 일반 리뷰 (변경 없음)
|
|
271
|
+
|
|
272
|
+
Round soft cap이 작동하면 최종 보고서에 "UNRESOLVED — BRANCHING DECISION NEEDED" 섹션이 추가됩니다.
|
|
273
|
+
|
|
274
|
+
### When to Use Anti-Groupthink Mode vs roundtable-debate
|
|
275
|
+
|
|
276
|
+
| 상황 | 권장 스킬 |
|
|
277
|
+
|------|---------|
|
|
278
|
+
| 합의가 *필요*하지만 위험 발굴도 필요 | `agora --mode anti-groupthink` |
|
|
279
|
+
| 합의 자체가 *불필요*, 다양한 시각이 산출물 | `roundtable-debate` |
|
|
280
|
+
| 단순 검증 (통과/실패) | `agora` (기본 모드) |
|
|
281
|
+
|
|
282
|
+
자세한 비교는 `guides/multi-agent-debate-patterns/` 가이드 참조 (별도 wave에서 생성 예정).
|
|
283
|
+
|
|
284
|
+
### Attribution
|
|
285
|
+
|
|
286
|
+
Devil's Advocate + minority protection 메커니즘은 cc-roundtable 패턴에서 차용되었습니다. (`roundtable-debate` 스킬과 공유 메커니즘)
|
|
@@ -347,6 +347,9 @@ Phase 1 research artifact is persisted by the `/research` skill.
|
|
|
347
347
|
Phase 3 verification report is persisted by the final synthesis agent:
|
|
348
348
|
```
|
|
349
349
|
.claude/outputs/sessions/{YYYY-MM-DD}/deep-plan-{HHmmss}.md
|
|
350
|
+
|
|
351
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
352
|
+
|
|
350
353
|
```
|
|
351
354
|
|
|
352
355
|
With metadata header:
|
|
@@ -85,6 +85,7 @@ Run these checks before declaring release READY. Any match is a release blocker.
|
|
|
85
85
|
| Guard | Detection Command | Severity | Remediation |
|
|
86
86
|
|-------|-------------------|----------|-------------|
|
|
87
87
|
| Skill Bash sensitive-path | `grep -rnE 'mkdir\s+-p[^` + "`" + `\n]*\.claude/(outputs\|agent-memory\|agent-memory-local)' .claude/skills/ templates/.claude/skills/ .claude/rules/ templates/.claude/rules/ 2>/dev/null` | **BLOCK** | Remove `mkdir` directive; rely on Write tool auto-dir-create. See R006 "Sensitive Path Handling" + `feedback_sensitive_path.md` |
|
|
88
|
+
| Skill artifact path missing Write directive | `find .claude/skills/ templates/.claude/skills/ -name SKILL.md | xargs grep -lE '.claude/outputs/' | while read f; do if ! grep -qE 'Write tool|Use the Write tool' "$f"; then echo "$f"; fi; done` | **WARN** | Add explicit Write-tool-only directive after artifact path mention. Pattern: `> **Tool**: Use the **Write tool**...` (see #1014 fix) |
|
|
88
89
|
|
|
89
90
|
> **Why**: CC sensitive-path check runs above `bypassPermissions` and Bash allow rules (#960/#961/#978). Skills instructing directory creation via Bash on artifact paths trigger permission prompts during unattended auto-dev execution. Use Write tool instead (auto-creates parents).
|
|
90
91
|
|
|
@@ -113,6 +113,9 @@ If only PASS/INFO: proceed automatically.
|
|
|
113
113
|
6. **Artifact persistence** (optional): Review agent saves findings to:
|
|
114
114
|
```
|
|
115
115
|
.claude/outputs/sessions/{YYYY-MM-DD}/dev-review-{HHmmss}.md
|
|
116
|
+
|
|
117
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
118
|
+
|
|
116
119
|
```
|
|
117
120
|
With metadata header:
|
|
118
121
|
```markdown
|
|
@@ -90,6 +90,9 @@ The evaluator-optimizer skill's `pre_negotiation` phase accepts harness-eval rub
|
|
|
90
90
|
|
|
91
91
|
Results saved to `.claude/outputs/sessions/{YYYY-MM-DD}/harness-eval-{HHmmss}.md` with per-task scores and aggregate grade.
|
|
92
92
|
|
|
93
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
94
|
+
|
|
95
|
+
|
|
93
96
|
## Attribution
|
|
94
97
|
|
|
95
98
|
Evaluation framework based on research by [revfactory/claude-code-harness](https://github.com/revfactory/claude-code-harness). Adapted for oh-my-customcode's evaluator-optimizer pipeline with permission.
|
|
@@ -93,6 +93,9 @@ harness:
|
|
|
93
93
|
|
|
94
94
|
1. **Read target agent frontmatter** — extract `tools`, `domain`, `limitations` fields
|
|
95
95
|
2. **Analyze recent tool call patterns** — check `.claude/outputs/` for prior session logs (if available)
|
|
96
|
+
|
|
97
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
98
|
+
|
|
96
99
|
3. **Synthesize validation harness** — generate YAML harness matching agent's declared capabilities
|
|
97
100
|
4. **Refine via evaluator-optimizer loop** — iterate harness against edge cases (3 rounds max)
|
|
98
101
|
5. **Save output** — write to `.claude/outputs/harnesses/{agent-name}-{mode}.yaml`
|
|
@@ -24,6 +24,9 @@ Gather unfinished work from multiple sources:
|
|
|
24
24
|
|
|
25
25
|
**Source B — Deep-verify findings**:
|
|
26
26
|
- Read the latest deep-verify output from `.claude/outputs/sessions/{today}/`
|
|
27
|
+
|
|
28
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
29
|
+
|
|
27
30
|
- Extract any MEDIUM or LOW severity findings that were flagged but not fixed
|
|
28
31
|
|
|
29
32
|
**Source C — Triage deferred items**:
|
|
@@ -229,6 +229,9 @@ _`/professor-triage` v2.2.0에 의해 현재 코드베이스 대비 분석됨
|
|
|
229
229
|
|
|
230
230
|
Path: `.claude/outputs/sessions/YYYY-MM-DD/professor-triage-HHmmss.md`
|
|
231
231
|
|
|
232
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
233
|
+
|
|
234
|
+
|
|
232
235
|
Timestamps use local machine time (consistent with other artifact skills).
|
|
233
236
|
|
|
234
237
|
Template:
|
|
@@ -204,6 +204,9 @@ Convergence expected by round 3. Hard stop at round 30.
|
|
|
204
204
|
2. **Artifact persistence**: The Phase 4 synthesis agent (opus) writes the report to:
|
|
205
205
|
```
|
|
206
206
|
.claude/outputs/sessions/{YYYY-MM-DD}/research-{HHmmss}.md
|
|
207
|
+
|
|
208
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
209
|
+
|
|
207
210
|
```
|
|
208
211
|
With metadata header:
|
|
209
212
|
```markdown
|
|
@@ -168,6 +168,9 @@ Summary: 5 agents checked, 1 warning
|
|
|
168
168
|
|
|
169
169
|
R006 Artifact Channel Protocol을 소비하는 표준 패턴. 병렬 에이전트가 각자 `.claude/outputs/sessions/{date}/{skill}-{HHmmss}.md`에 결과를 작성하면, result-aggregation이 경로 N개를 받아 단일 요약을 생성합니다.
|
|
170
170
|
|
|
171
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
172
|
+
|
|
173
|
+
|
|
171
174
|
### 입력 형식
|
|
172
175
|
|
|
173
176
|
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roundtable-debate
|
|
3
|
+
description: Multi-agent structured debate with anti-groupthink mechanisms — Devil's Advocate, minority opinion protection, 2-round hard cap. Use when divergent perspectives matter more than consensus (architecture decisions, design tradeoffs, contested specifications).
|
|
4
|
+
scope: core
|
|
5
|
+
context: fork
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# roundtable-debate
|
|
10
|
+
|
|
11
|
+
발산 보존(divergence preservation)을 목표로 하는 다중 에이전트 구조화 토론 스킬. 기존 `agora`(수렴 목표)와 보완 관계.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
| 상황 | 권장 스킬 |
|
|
16
|
+
|------|-----------|
|
|
17
|
+
| 만장일치 합의 필요 (스펙 확정) | `agora` |
|
|
18
|
+
| 다각적 평가 필요 (리스크 발굴) | `roundtable-debate` |
|
|
19
|
+
| 단일 결정 + 단일 답변 | `agora` |
|
|
20
|
+
| 의도적 발산 + 소수의견 보존 | `roundtable-debate` |
|
|
21
|
+
|
|
22
|
+
## Anti-Groupthink Mechanisms
|
|
23
|
+
|
|
24
|
+
다중 LLM 토론의 3대 고질병을 구조적으로 방지:
|
|
25
|
+
|
|
26
|
+
| 고질병 | 메커니즘 |
|
|
27
|
+
|--------|---------|
|
|
28
|
+
| 앵커링 효과 | Independent-first parallel analysis (라운드 0 — 다른 에이전트 의견 노출 전 독립 분석) |
|
|
29
|
+
| 집단사고 (Groupthink) | Devil's Advocate 강제 주입 (전담 페르소나 1명) |
|
|
30
|
+
| Degeneration of Thought | 2라운드 하드캡 (라운드 수 증가 시 다양성 감소 연구 기반) |
|
|
31
|
+
| 소수의견 묵살 | 기각 시 명시적 정당화 요구 프로토콜 |
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
|
|
35
|
+
### Phase 0: Independent Parallel Analysis
|
|
36
|
+
|
|
37
|
+
각 페르소나 에이전트가 다른 에이전트 의견을 보지 않고 **독립적으로** 분석. 앵커링 효과 차단.
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
TeamCreate("roundtable-{topic}")
|
|
41
|
+
→ Agent(architect): 독립 분석
|
|
42
|
+
→ Agent(critic-devil): 독립 분석 (Devil's Advocate)
|
|
43
|
+
→ Agent(implementer): 독립 분석
|
|
44
|
+
→ Agent(user-advocate): 독립 분석
|
|
45
|
+
(R009 hard cap 5 준수)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
각 에이전트는 자신의 분석을 artifact로 저장 (R006 Artifact Channel Protocol).
|
|
49
|
+
|
|
50
|
+
### Phase 1: Round 1 — Discussion
|
|
51
|
+
|
|
52
|
+
모든 독립 분석 공개 후 라운드 1 토론. SendMessage로 peer 의견 교환.
|
|
53
|
+
|
|
54
|
+
규칙:
|
|
55
|
+
1. 다른 의견을 기각할 때 명시적 정당화 (3개 근거) 필수
|
|
56
|
+
2. Devil's Advocate는 합의에 동의하지 않음 — 항상 반대 입장 견지
|
|
57
|
+
3. 소수의견(1명만 주장)은 별도 트랙으로 보존
|
|
58
|
+
|
|
59
|
+
### Phase 2: Round 2 — Convergence Attempt (last round)
|
|
60
|
+
|
|
61
|
+
라운드 2가 마지막. 합의 도달 여부 무관하게 **종료**.
|
|
62
|
+
|
|
63
|
+
산출물:
|
|
64
|
+
1. 공통 합의 사항 (있을 경우)
|
|
65
|
+
2. 보존된 소수의견 + 정당화
|
|
66
|
+
3. Devil's Advocate 최종 반대 의견
|
|
67
|
+
|
|
68
|
+
### Phase 3: Synthesis
|
|
69
|
+
|
|
70
|
+
오케스트레이터가 3종 결과를 종합 보고. 합의가 없는 영역은 명시적으로 "합의 없음 — 사용자 결정 필요"로 표기.
|
|
71
|
+
|
|
72
|
+
## Persona Templates
|
|
73
|
+
|
|
74
|
+
기본 4 페르소나 (도메인에 따라 mgr-creator로 추가 가능):
|
|
75
|
+
|
|
76
|
+
| 페르소나 | 역할 |
|
|
77
|
+
|---------|------|
|
|
78
|
+
| architect | 구조적 일관성, R006 separation of concerns |
|
|
79
|
+
| critic-devil | Devil's Advocate — 모든 제안 반대 입장 |
|
|
80
|
+
| implementer | 구현 실현 가능성, 비용 |
|
|
81
|
+
| user-advocate | 사용자 경험, DX |
|
|
82
|
+
|
|
83
|
+
## Comparison with Existing Skills
|
|
84
|
+
|
|
85
|
+
| 스킬 | 목표 | 종료 조건 |
|
|
86
|
+
|------|------|----------|
|
|
87
|
+
| `agora` | 만장일치 수렴 | 모든 LLM 동의 |
|
|
88
|
+
| `roundtable-debate` | 발산 보존 | 2라운드 도달 |
|
|
89
|
+
| `adversarial-review` | 공격자 1인 시각 | 단일 라운드 |
|
|
90
|
+
| `evaluator-optimizer` | 평가-개선 루프 | 평가 통과 |
|
|
91
|
+
|
|
92
|
+
## Configuration
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
# Skill arguments
|
|
96
|
+
personas: 4 # 기본 4명, 3-5명 권장
|
|
97
|
+
max_rounds: 2 # HARD CAP — 변경 금지 (research-based)
|
|
98
|
+
devil_advocate: required # Devil's Advocate 슬롯 강제
|
|
99
|
+
minority_protection: strict # 기각 시 정당화 필수
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Integration
|
|
103
|
+
|
|
104
|
+
| Rule | How |
|
|
105
|
+
|------|-----|
|
|
106
|
+
| R009 | Phase 0 병렬 분석 (4-5 페르소나, hard cap 5 준수) |
|
|
107
|
+
| R010 | 오케스트레이터가 페르소나 dispatch, 페르소나 간 직접 파일 수정 금지 |
|
|
108
|
+
| R018 | Agent Teams 활성 시 자동 사용 (3+ 에이전트) |
|
|
109
|
+
| R006 | Phase 0/1/2 간 결과 핸드오프는 artifact channel 사용 |
|
|
110
|
+
|
|
111
|
+
## Attribution
|
|
112
|
+
|
|
113
|
+
Pattern source: [cc-roundtable](https://github.com/gaebalai/cc-roundtable) by gaebalai.
|
|
@@ -176,6 +176,9 @@ feedback memory에 누적된 실패 패턴을 분석하여 영구 구조(스킬
|
|
|
176
176
|
|
|
177
177
|
`.claude/outputs/sessions/{date}/skill-extractor-failure-{HH}.md` 아티팩트 (R006 Artifact Channel Protocol)
|
|
178
178
|
|
|
179
|
+
> **Tool**: Use the **Write tool** to create artifact files — Write auto-creates parent directories. **Never use `Bash(mkdir -p .claude/outputs/...)`** — the path triggers CC sensitive-path guard and prompts for permission, breaking unattended pipeline execution.
|
|
180
|
+
|
|
181
|
+
|
|
179
182
|
### 참조
|
|
180
183
|
|
|
181
184
|
- R016 `MUST-continuous-improvement.md` Defect Response Matrix — Skill Promotion 열
|
package/templates/CLAUDE.md
CHANGED
|
@@ -115,11 +115,11 @@ project/
|
|
|
115
115
|
+-- CLAUDE.md # 진입점
|
|
116
116
|
+-- .claude/
|
|
117
117
|
| +-- agents/ # 서브에이전트 정의 (49 파일)
|
|
118
|
-
| +-- skills/ # 스킬 (
|
|
118
|
+
| +-- skills/ # 스킬 (114 디렉토리)
|
|
119
119
|
| +-- rules/ # 전역 규칙 (R000-R022)
|
|
120
120
|
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
121
121
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
122
|
-
+-- guides/ # 레퍼런스 문서 (
|
|
122
|
+
+-- guides/ # 레퍼런스 문서 (45 토픽)
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
## 오케스트레이션
|
|
@@ -237,6 +237,7 @@ Claude Code의 Agent Teams 기능이 활성화되어 있으면 (`CLAUDE_CODE_EXP
|
|
|
237
237
|
|----------|------|------|
|
|
238
238
|
| cc-token-saver | ww-w-ai/cc-token-saver | 토큰/비용 최적화 (Token Guardian, /continue, /usage-view) |
|
|
239
239
|
| caveman | JuliusBrussee/caveman | 영어 출력 토큰 압축 (코드 리뷰·커밋 메시지). R013 ecomode 미적용 구간 보완. 한국어 컨텍스트(R000)에는 ecomode 우선. `lite`/`full` 권장, `ultra`/`文言文` 가독성 저하 주의 |
|
|
240
|
+
| cc-roundtable | gaebalai/cc-roundtable | Devil's Advocate + 소수의견 보호 + 2라운드 하드캡 다중 에이전트 토론. `roundtable-debate` 스킬에 패턴 내재화됨; 외부 플러그인 직접 사용 시 대안 경로 |
|
|
240
241
|
|
|
241
242
|
### 권장 MCP 서버
|
|
242
243
|
|
|
@@ -262,4 +263,4 @@ claude-mem setup
|
|
|
262
263
|
|
|
263
264
|
<!-- omcustom:git-workflow -->
|
|
264
265
|
|
|
265
|
-
<!-- omcustom:end -->
|
|
266
|
+
<!-- omcustom:end -->
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# 다중 에이전트 토론 패턴
|
|
2
|
+
|
|
3
|
+
> 다중 LLM/에이전트 토론에서 발생하는 **3대 고질병**과 이를 방지하는 구조적 메커니즘 가이드.
|
|
4
|
+
|
|
5
|
+
## 3대 고질병
|
|
6
|
+
|
|
7
|
+
### 1. 앵커링 효과 (Anchoring Effect)
|
|
8
|
+
첫 번째로 발화한 에이전트의 의견이 후속 에이전트의 사고를 제한하는 현상. 토론 참여자가 동시에 시작하지 않으면 발생.
|
|
9
|
+
|
|
10
|
+
**방지**: Round 0 — Independent Parallel Analysis (다른 의견 노출 전 독립 분석)
|
|
11
|
+
|
|
12
|
+
### 2. 집단사고 (Groupthink)
|
|
13
|
+
다수 의견에 합의 압력이 작용해 비판적 시각이 사라지는 현상. LLM은 "동의하기 쉬운" 응답을 선호하므로 특히 취약.
|
|
14
|
+
|
|
15
|
+
**방지**: Devil's Advocate 페르소나 강제 주입 — 전담 반대자가 합의에 동의하지 않음
|
|
16
|
+
|
|
17
|
+
### 3. Degeneration of Thought
|
|
18
|
+
토론 라운드가 증가할수록 의견 다양성이 감소하는 현상. 연구에 따르면 3라운드 이상에서 다양성이 급격히 떨어짐.
|
|
19
|
+
|
|
20
|
+
**방지**: 2라운드 하드캡 — 합의 도달 여부 무관하게 종료
|
|
21
|
+
|
|
22
|
+
## 추가 보호 메커니즘
|
|
23
|
+
|
|
24
|
+
### 소수의견 보호 프로토콜
|
|
25
|
+
- 1명만 주장하는 의견도 별도 트랙으로 보존
|
|
26
|
+
- 기각 시 명시적 정당화(3개 근거 이상) 필수
|
|
27
|
+
|
|
28
|
+
## agora vs roundtable-debate 선택 매트릭스
|
|
29
|
+
|
|
30
|
+
| 상황 | 권장 | 이유 |
|
|
31
|
+
|------|------|------|
|
|
32
|
+
| 스펙 최종 확정 (단일 답변 필요) | `agora` | 만장일치 수렴 |
|
|
33
|
+
| 아키텍처 결정 (트레이드오프 평가) | `roundtable-debate` | 발산 보존 |
|
|
34
|
+
| 보안 감사 (공격자 시각) | `adversarial-review` | 공격자 1인 시각 |
|
|
35
|
+
| 코드 품질 개선 루프 | `evaluator-optimizer` | 평가-개선 |
|
|
36
|
+
| 리스크 발굴 (블라인드 스폿) | `roundtable-debate` | 다양한 페르소나 |
|
|
37
|
+
| 산출물 검증 (통과/실패) | `agora` | 단일 결정 |
|
|
38
|
+
|
|
39
|
+
## 종료 조건 비교
|
|
40
|
+
|
|
41
|
+
| 스킬 | 종료 조건 | 산출물 |
|
|
42
|
+
|------|----------|--------|
|
|
43
|
+
| `agora` | 모든 LLM 동의 | 단일 합의안 |
|
|
44
|
+
| `roundtable-debate` | 2라운드 도달 | 합의 + 소수의견 + Devil's Advocate 반대 |
|
|
45
|
+
| `adversarial-review` | 단일 라운드 완료 | 취약점 목록 |
|
|
46
|
+
| `evaluator-optimizer` | 평가 통과 | 개선된 산출물 |
|
|
47
|
+
|
|
48
|
+
## 연구 근거
|
|
49
|
+
|
|
50
|
+
| 메커니즘 | 근거 |
|
|
51
|
+
|---------|------|
|
|
52
|
+
| 2-round hard cap | 다중 LLM 토론 라운드 수 증가 시 다양성 감소 연구 (cc-roundtable attribution) |
|
|
53
|
+
| Devil's Advocate | Janis (1972) Groupthink 이론 — "비판적 평가자" 역할 |
|
|
54
|
+
| Independent-first | Asch conformity studies — 독립 의견 형성 후 노출이 conformity 감소 |
|
|
55
|
+
|
|
56
|
+
## 구현 예시
|
|
57
|
+
|
|
58
|
+
`agora`(수렴):
|
|
59
|
+
```
|
|
60
|
+
사용자: "이 API 스펙이 안전한가?" → agora → "안전함 (3 LLM 만장일치)"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`roundtable-debate`(발산):
|
|
64
|
+
```
|
|
65
|
+
사용자: "OAuth vs JWT 어느 쪽이 적합?" → roundtable-debate →
|
|
66
|
+
- 합의: "프로젝트 X는 OAuth 권장"
|
|
67
|
+
- 소수의견 (architect): "JWT가 stateless 측면에서 우월" + 정당화
|
|
68
|
+
- Devil's Advocate: "둘 다 부적합 — Session-based 고려해야"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Attribution
|
|
72
|
+
|
|
73
|
+
cc-roundtable (https://github.com/gaebalai/cc-roundtable) 패턴에서 차용. R016 attribution 정책 준수.
|
|
74
|
+
|
|
75
|
+
## 관련 자료
|
|
76
|
+
|
|
77
|
+
- 스킬: `.claude/skills/roundtable-debate/SKILL.md`
|
|
78
|
+
- 스킬: `.claude/skills/agora/SKILL.md`
|
|
79
|
+
- 룰: R009 (병렬 실행), R018 (Agent Teams)
|
package/templates/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.111.0",
|
|
3
3
|
"lastUpdated": "2026-04-24T07:30:00.000Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"name": "skills",
|
|
19
19
|
"path": ".claude/skills",
|
|
20
20
|
"description": "Reusable skill modules (includes slash commands)",
|
|
21
|
-
"files":
|
|
21
|
+
"files": 114
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"name": "guides",
|
|
25
25
|
"path": "guides",
|
|
26
26
|
"description": "Reference documentation",
|
|
27
|
-
"files":
|
|
27
|
+
"files": 45
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"name": "hooks",
|