oh-my-customcode 0.75.0 → 0.76.1

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
@@ -13,7 +13,7 @@
13
13
 
14
14
  **[한국어 문서 (Korean)](./README_ko.md)**
15
15
 
16
- 46 agents. 100 skills. 21 rules. One command.
16
+ 46 agents. 101 skills. 21 rules. One command.
17
17
 
18
18
  ```bash
19
19
  npm install -g oh-my-customcode && cd your-project && omcustom init
@@ -145,7 +145,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
145
145
 
146
146
  ---
147
147
 
148
- ### Skills (100)
148
+ ### Skills (101)
149
149
 
150
150
  | Category | Count | Includes |
151
151
  |----------|-------|----------|
@@ -285,7 +285,7 @@ your-project/
285
285
  ├── CLAUDE.md # Entry point
286
286
  ├── .claude/
287
287
  │ ├── agents/ # 46 agent definitions
288
- │ ├── skills/ # 100 skill modules
288
+ │ ├── skills/ # 101 skill modules
289
289
  │ ├── rules/ # 21 governance rules (R000-R021)
290
290
  │ ├── hooks/ # 15 lifecycle hook scripts
291
291
  │ ├── schemas/ # Tool input validation schemas
package/dist/cli/index.js CHANGED
@@ -9325,7 +9325,7 @@ var init_package = __esm(() => {
9325
9325
  workspaces: [
9326
9326
  "packages/*"
9327
9327
  ],
9328
- version: "0.75.0",
9328
+ version: "0.76.1",
9329
9329
  description: "Batteries-included agent harness for Claude Code",
9330
9330
  type: "module",
9331
9331
  bin: {
package/dist/index.js CHANGED
@@ -1820,7 +1820,7 @@ var package_default = {
1820
1820
  workspaces: [
1821
1821
  "packages/*"
1822
1822
  ],
1823
- version: "0.75.0",
1823
+ version: "0.76.1",
1824
1824
  description: "Batteries-included agent harness for Claude Code",
1825
1825
  type: "module",
1826
1826
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.75.0",
6
+ "version": "0.76.1",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -61,11 +61,23 @@ Before writing/editing multiple files:
61
61
 
62
62
  | Rule | Detail |
63
63
  |------|--------|
64
- | Max instances | 4 concurrent |
64
+ | Max instances | 5 concurrent (soft default: 4) |
65
65
  | Not parallelizable | Orchestrator (must stay singleton) |
66
66
  | Instance independence | Isolated context, no shared state |
67
67
  | Large tasks (>3 min) | MUST split into parallel sub-tasks |
68
68
 
69
+ ## Stability Testing Protocol
70
+
71
+ When testing 5 concurrent agents (above the soft default of 4):
72
+
73
+ | Observation | Threshold | Action |
74
+ |-------------|-----------|--------|
75
+ | Response latency | > 2x normal | Reduce to 4 |
76
+ | Agent failure rate | > 10% | Reduce to 4 |
77
+ | Context errors | Any | Reduce to 4 |
78
+
79
+ 5-agent concurrency is supported but should be monitored during initial adoption. Fall back to 4 if instability is observed.
80
+
69
81
  ## Agent Tool Requirements
70
82
 
71
83
  - Use specific `subagent_type` (not "general-purpose" when specialist exists)
@@ -0,0 +1,194 @@
1
+ ---
2
+ name: agora
3
+ description: "Multi-LLM adversarial consensus loop — 3+ LLMs compete to find flaws in designs/specs until unanimous agreement is reached"
4
+ user-invocable: true
5
+ argument-hint: "<document-path> [--rounds N] [--severity-threshold HIGH]"
6
+ effort: max
7
+ scope: core
8
+ version: 1.0.0
9
+ source:
10
+ type: external
11
+ origin: github
12
+ url: https://github.com/baekenough/baekenough-skills
13
+ version: 1.0.0
14
+ ---
15
+
16
+ # Agora: Multi-LLM Adversarial Consensus
17
+
18
+ 3개 이상의 LLM(Claude, Codex/GPT, Gemini)이 경쟁적으로 설계/문서의 결함을 찾고, 만장일치 합의에 도달할 때까지 반복하는 적대적 교차 검증 스킬.
19
+
20
+ ## Prerequisites
21
+
22
+ - `codex-exec` skill (Codex/GPT 호출)
23
+ - `gemini-exec` skill (Gemini 호출)
24
+ - Agent Teams enabled (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`) or Agent tool available
25
+
26
+ ## Usage
27
+
28
+ ```
29
+ /agora docs/design.md # Default: 3 LLMs, unlimited rounds
30
+ /agora docs/design.md --rounds 10 # Max 10 rounds
31
+ /agora docs/design.md --severity-threshold HIGH # Exit when no HIGH+ findings
32
+ /agora docs/design.md --models claude,codex # 2 LLMs only
33
+ ```
34
+
35
+ ## Workflow
36
+
37
+ ### Phase 1: Setup
38
+ 1. Read the target document
39
+ 2. Create Agent Team: `TeamCreate("agora-review")`
40
+ 3. Create review tasks per focus area
41
+
42
+ ### Phase 2: Spawn Reviewers (parallel)
43
+ Spawn 3 reviewers as Agent Team members:
44
+
45
+ ```
46
+ Agent(name: "claude-critic", model: opus, effort: max)
47
+ → 20-point deep adversarial review
48
+
49
+ Agent(name: "codex-critic", model: opus)
50
+ → Invoke Skill(codex-exec) for GPT perspective + independent Claude analysis
51
+
52
+ Agent(name: "gemini-critic", model: opus)
53
+ → Invoke Skill(gemini-exec) for Gemini perspective + independent Claude analysis
54
+ ```
55
+
56
+ ### Phase 3: Independent Review
57
+ Each reviewer performs adversarial review with this template:
58
+
59
+ ```
60
+ For EACH review point:
61
+ ### Round N: [Topic]
62
+ **Severity**: CRITICAL / HIGH / MEDIUM / LOW
63
+ **Flaw**: [Specific, concrete problem description]
64
+ **Evidence**: [Why this is real, not theoretical]
65
+ **Impact**: [What happens if not addressed]
66
+ **Counter-argument**: [Best case FOR the current design]
67
+ **Verdict**: KEEP / MODIFY / REJECT
68
+ ```
69
+
70
+ Review areas (adapt to document type):
71
+ - Architecture fundamentals
72
+ - Component/service design
73
+ - Data architecture
74
+ - Security & resilience
75
+ - Feasibility & deployment
76
+ - Testing strategy
77
+ - Operational complexity
78
+
79
+ ### Phase 4: Cross-Review (Peer-to-Peer)
80
+ Each reviewer sends findings to the other two via `SendMessage`.
81
+
82
+ Counter-review template:
83
+ 1. Which findings do you **AGREE** with? (and why)
84
+ 2. Which findings do you **DISAGREE** with? (evidence-based rebuttal)
85
+ 3. What did they **MISS** that you caught?
86
+ 4. What did they catch that you **MISSED**?
87
+ 5. **SEVERITY** adjustments — upgrade or downgrade with justification
88
+
89
+ ### Phase 5: Synthesis
90
+ Team lead aggregates all findings:
91
+
92
+ ```
93
+ UNANIMOUS CRITICAL: [findings all 3 agreed on]
94
+ STRONG AGREEMENT: [findings 2/3 agreed on]
95
+ SPLIT DECISIONS: [findings with disagreement + resolution]
96
+ ```
97
+
98
+ Determine verdict:
99
+ - **BUILD**: No CRITICAL, no unresolved HIGH
100
+ - **BUILD WITH CHANGES**: No CRITICAL, HIGH findings have accepted mitigations
101
+ - **REDESIGN**: Any unresolved CRITICAL findings
102
+ - **ABANDON**: Fundamental concept is flawed
103
+
104
+ ### Phase 6: Loop (if REDESIGN)
105
+ 1. Team lead produces/delegates redesign addressing ALL critical findings
106
+ 2. New version sent to ALL reviewers: `SendMessage(to: "*")`
107
+ 3. Reviewers re-review → GOTO Phase 4
108
+ 4. Repeat until EXIT criteria met
109
+
110
+ ### Phase 7: Exit (consensus reached)
111
+ When ALL reviewers agree BUILD or BUILD WITH CHANGES:
112
+ 1. Produce final consensus report
113
+ 2. Write to `.claude/outputs/sessions/{date}/agora-{topic}-{time}.md`
114
+ 3. Shut down team: `SendMessage(to: "*", message: {type: "shutdown_request"})`
115
+
116
+ ## Reviewer Principles
117
+
118
+ 1. **NEUTRAL** — no reviewer has home team advantage
119
+ 2. **COMPETITIVE** — find flaws others missed
120
+ 3. **CRITICAL** — "fewer than 5 CRITICAL flaws = not looking hard enough"
121
+ 4. **EVIDENCE-BASED** — every finding cites specific evidence
122
+ 5. **CONSTRUCTIVE** — every flaw includes recommended fix
123
+ 6. **CONVERGENT** — goal is consensus, not endless disagreement
124
+
125
+ ## Consensus Criteria
126
+
127
+ | Condition | Required |
128
+ |-----------|----------|
129
+ | CRITICAL findings resolved | ALL |
130
+ | HIGH findings resolved or accepted | ALL |
131
+ | All reviewers rate BUILD or BUILD WITH CHANGES | YES |
132
+ | Cross-review disagreements resolved | ALL |
133
+
134
+ ## Output Format
135
+
136
+ ```markdown
137
+ # Agora Consensus Report
138
+
139
+ ## Document: [path]
140
+ ## Rounds: [N]
141
+ ## Reviewers: [list with LLM models used]
142
+
143
+ ## Verdict: [BUILD / BUILD WITH CHANGES / REDESIGN]
144
+
145
+ ## Unanimous Findings
146
+ | # | Finding | Severity | All 3 Agree |
147
+ |---|---------|----------|-------------|
148
+
149
+ ## Required Changes Before Build
150
+ 1. [change with source reviewer]
151
+ 2. ...
152
+
153
+ ## Accepted Risks
154
+ - [finding accepted with justification]
155
+
156
+ ## Unique Contributions Per Reviewer
157
+ | Reviewer | Findings Others Missed |
158
+ |----------|----------------------|
159
+
160
+ ## Process Metrics
161
+ - Rounds: N
162
+ - Total findings: N
163
+ - Cross-adopted: N
164
+ - Severity upgrades: N
165
+ - Severity downgrades: N
166
+ - Disagreements raised: N
167
+ - Disagreements resolved: N/N
168
+ ```
169
+
170
+ ## Configuration
171
+
172
+ ```yaml
173
+ # Default settings
174
+ agora:
175
+ max_rounds: unlimited # Set --rounds to limit
176
+ severity_threshold: HIGH # EXIT when no findings >= threshold
177
+ models:
178
+ - claude (opus, max effort)
179
+ - codex (via codex-exec skill)
180
+ - gemini (via gemini-exec skill)
181
+ review_points: 20 # Per reviewer
182
+ cross_review: true # Peer-to-peer sharing
183
+ auto_redesign: true # Auto-produce redesign on REDESIGN verdict
184
+ ```
185
+
186
+ ## Anti-Patterns
187
+
188
+ | Anti-Pattern | Why Wrong | Correct |
189
+ |-------------|-----------|---------|
190
+ | Single LLM review | Misses blind spots | 3+ LLMs find complementary flaws |
191
+ | No cross-review | Reviewers don't challenge each other | Peer-to-peer sharing surfaces disagreements |
192
+ | Accepting first BUILD | May miss edge cases | Loop until ALL agree |
193
+ | Ignoring split decisions | Unresolved disagreements fester | Resolve every split with evidence |
194
+ | Push for consensus too fast | Premature agreement | Let reviewers challenge freely |
@@ -18,7 +18,7 @@ Defines mandatory safety constraints for all pipeline, workflow, and iterative e
18
18
  |-------|---------|----------|------------|
19
19
  | Max iterations | 3 | 5 | worker-reviewer-pipeline |
20
20
  | Max DAG nodes | 20 | 30 | dag-orchestration |
21
- | Max parallel agents | 4 | 4 | R009 (all pipelines) |
21
+ | Max parallel agents | 4 | 5 | R009 (all pipelines) |
22
22
  | Timeout per node | 300s | 600s | dag-orchestration nodes |
23
23
  | Timeout per pipeline | 900s | 1800s | worker-reviewer-pipeline |
24
24
  | Max retry count | 2 | 3 | Failure retry strategies |
@@ -148,7 +148,7 @@ Guard warnings appear inline:
148
148
 
149
149
  | Rule/Skill | Integration |
150
150
  |------------|-------------|
151
- | R009 | Max parallel agents enforced (hard cap: 4) |
151
+ | R009 | Max parallel agents enforced (hard cap: 5, soft default: 4) |
152
152
  | R010 | Guards run in orchestrator only |
153
153
  | R015 | Guard warnings displayed transparently |
154
154
  | dag-orchestration | Node count and timeout limits |
@@ -108,6 +108,7 @@ oh-my-customcode로 구동됩니다.
108
108
  | `/omcustom:improve-report` | eval-core 기반 개선 현황 리포트 |
109
109
  | `/omcustom-takeover` | 기존 에이전트/스킬에서 canonical spec 추출 |
110
110
  | `/adversarial-review` | 공격자 관점 보안 코드 리뷰 |
111
+ | `/omcustom:agora` | Multi-LLM 적대적 합의 루프 (설계/스펙 교차 검증) |
111
112
  | `/ambiguity-gate` | 요청 모호성 분석 및 명확화 질문 (ouroboros 패턴) |
112
113
  | `/dev-review` | 코드 베스트 프랙티스 리뷰 |
113
114
  | `/dev-refactor` | 코드 리팩토링 |
@@ -151,7 +152,7 @@ project/
151
152
  +-- CLAUDE.md # 진입점
152
153
  +-- .claude/
153
154
  | +-- agents/ # 서브에이전트 정의 (46 파일)
154
- | +-- skills/ # 스킬 (99 디렉토리)
155
+ | +-- skills/ # 스킬 (100 디렉토리)
155
156
  | +-- rules/ # 전역 규칙 (R000-R021)
156
157
  | +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
157
158
  | +-- contexts/ # 컨텍스트 파일 (ecomode)
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.75.0",
2
+ "version": "0.76.1",
3
3
  "lastUpdated": "2026-03-24T00:00:00.000Z",
4
4
  "components": [
5
5
  {
@@ -18,7 +18,7 @@
18
18
  "name": "skills",
19
19
  "path": ".claude/skills",
20
20
  "description": "Reusable skill modules (includes slash commands)",
21
- "files": 100
21
+ "files": 101
22
22
  },
23
23
  {
24
24
  "name": "guides",