oh-my-customcode 0.154.0 → 0.155.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.
Files changed (32) hide show
  1. package/dist/cli/index.js +1 -1
  2. package/dist/index.js +1 -1
  3. package/package.json +1 -1
  4. package/templates/.claude/agents/arch-documenter.md +17 -0
  5. package/templates/.claude/agents/fe-design-expert.md +20 -0
  6. package/templates/.claude/agents/mgr-creator.md +2 -10
  7. package/templates/.claude/agents/mgr-updater.md +2 -10
  8. package/templates/.claude/hooks/scripts/feedback-collector.sh +9 -6
  9. package/templates/.claude/hooks/scripts/session-reflection.sh +53 -1
  10. package/templates/.claude/hooks/scripts/skill-extractor-analyzer.sh +8 -1
  11. package/templates/.claude/rules/MAY-optimization.md +15 -0
  12. package/templates/.claude/rules/MUST-agent-design.md +11 -23
  13. package/templates/.claude/rules/MUST-agent-identification.md +35 -0
  14. package/templates/.claude/rules/MUST-continuous-improvement.md +2 -0
  15. package/templates/.claude/rules/MUST-enforcement-policy.md +6 -5
  16. package/templates/.claude/rules/MUST-language-policy.md +16 -0
  17. package/templates/.claude/rules/MUST-orchestrator-coordination.md +42 -0
  18. package/templates/.claude/rules/MUST-tool-identification.md +37 -0
  19. package/templates/.claude/rules/SHOULD-hud-statusline.md +2 -0
  20. package/templates/.claude/skills/agora/SKILL.md +1 -9
  21. package/templates/.claude/skills/codex-exec/SKILL.md +1 -9
  22. package/templates/.claude/skills/hada-scout/SKILL.md +100 -48
  23. package/templates/.claude/skills/memory-management/SKILL.md +44 -0
  24. package/templates/.claude/skills/omcustom-auto-improve/SKILL.md +2 -2
  25. package/templates/.claude/skills/pipeline/SKILL.md +44 -0
  26. package/templates/.claude/skills/post-release-followup/SKILL.md +59 -31
  27. package/templates/.claude/skills/profile/SKILL.md +2 -11
  28. package/templates/.claude/skills/reasoning-sandwich/SKILL.md +21 -0
  29. package/templates/.claude/skills/scout/SKILL.md +34 -33
  30. package/templates/.claude/skills/skills-sh-search/SKILL.md +10 -9
  31. package/templates/.claude/skills/update-external/SKILL.md +7 -0
  32. package/templates/manifest.json +1 -1
@@ -1,92 +1,144 @@
1
1
  ---
2
2
  name: hada-scout
3
- description: hada.io RSS feed monitoring for AI agent/harness articles with automated /scout analysis
4
- scope: package
5
- version: 1.0.0
6
- user-invocable: false
3
+ description: hada.io RSS feed monitoring with LLM pre-scout filtering for oh-my-customcode relevance
4
+ scope: core
5
+ version: 2.0.0
6
+ user-invocable: true
7
+ argument-hint: "[--limit N] [--threshold N]"
7
8
  ---
8
9
 
9
10
  # hada-scout
10
11
 
11
- Automated pipeline that monitors hada.io (via feedburner RSS) for AI agent, harness, benchmark, and eval-related articles, then runs `/scout` analysis on each match.
12
+ 3-phase in-session pipeline that monitors hada.io (via feedburner RSS) for relevant articles,
13
+ uses a haiku LLM batch to pre-score relevance, and dispatches full `/scout` analysis only on
14
+ high-scoring candidates.
12
15
 
13
16
  ## Purpose
14
17
 
15
- Complement geeknews-scout with harness/eval-focused coverage from hada.io. While geeknews-scout casts a broad net over AI agent news, hada-scout narrows to benchmark/evaluation framework content — the domain most relevant to oh-my-customcode's harness and agent-eval subsystems.
18
+ Replace the v1.0 keyword-regex approach with context-aware LLM pre-scoring. Haiku evaluates
19
+ all feed titles in a single batch call, reducing false positives from ~30-40% to ~5-10% and
20
+ eliminating the external CronJob dependency for user-invoked runs.
16
21
 
17
- ## Architecture: 2-Layer Hybrid
22
+ ## Architecture: 3-Phase In-Session Pipeline
18
23
 
19
- ### Layer 1 — check-feed.sh (feed → issues)
24
+ ### Phase 1 — Fetch & Parse
20
25
 
21
- 1. Fetch hada.io feedburner RSS
22
- 2. Filter entries by keyword regex (case-insensitive)
23
- 3. Dedup against existing `hada-scout` issues
24
- 4. Create GitHub issue per match with labels `hada-scout` + `pending-scout`
26
+ 1. WebFetch the hada.io RSS feed (`https://feeds.feedburner.com/geeknews-feed`)
27
+ 2. Parse all items: title, URL, publication date
28
+ 3. Default: latest 50 items (configurable via `--limit` or `HADA_SCOUT_LIMIT`)
25
29
 
26
- ### Layer 2 — scout-runner.sh (issues → /scout)
30
+ ### Phase 2 — Pre-Scout (haiku batch)
27
31
 
28
- 1. Find open issues with `pending-scout` label
29
- 2. Extract source URL from issue body
30
- 3. Run `claude -p "/scout {url}"` (max 5 executions per run)
31
- 4. Parse verdict from /scout output
32
- 5. Apply verdict label, remove `pending-scout`
32
+ 1. Spawn 1 haiku agent with ALL item titles as a single batch input
33
+ 2. Agent evaluates each title against oh-my-customcode's domain (see prompt template below)
34
+ 3. Returns relevance score (0–100) and a 1-line reason for each item
35
+ 4. Threshold: 60 passes to Phase 3 (configurable via `--threshold` or `HADA_SCOUT_THRESHOLD`)
36
+ 5. Cost: ~$0.01–0.05 for 50 items
33
37
 
34
- ## Keyword Strategy
38
+ ### Phase 3 — Scout Dispatch
35
39
 
36
- hada-scout uses harness/benchmark/eval focused keywords, distinct from geeknews-scout's broader AI agent coverage:
40
+ 1. Dedup: check existing `hada-scout` labeled issues via `gh issue list --label hada-scout`
41
+ 2. For each passing item (max 5 per run, configurable via `MAX_SCOUT_PER_RUN`):
42
+ - Run full `/scout` analysis via Skill tool invocation
43
+ - Scout creates GitHub issue with verdict label on `baekenough/oh-my-customcode`
44
+ - Add `hada-scout` label to the created issue
45
+ 3. Dispatch up to 4 scouts in parallel per R009
46
+
47
+ ## Pre-Scout Prompt Template
48
+
49
+ The haiku agent receives the following system prompt:
37
50
 
38
51
  ```
39
- harness|benchmark|eval|evaluation framework|agent framework|코드 리뷰 자동화|하네스|벤치마크|평가
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 44 agents, 74 skills.
54
+
55
+ Project domains (HIGH relevance):
56
+ - AI agent orchestration, multi-agent systems, agent design patterns
57
+ - Harness, benchmark, evaluation frameworks for AI agents
58
+ - Claude Code, Anthropic ecosystem, MCP protocol
59
+ - Code review automation, development workflow automation
60
+ - Agent sandbox, isolation, security patterns
61
+ - LLM-assisted development tools and methodologies
62
+
63
+ Project domains (MEDIUM relevance):
64
+ - General AI/ML tooling that could be adapted for agent workflows
65
+ - DevOps automation patterns applicable to agent infrastructure
66
+ - New programming paradigms for AI-assisted development
67
+
68
+ NOT relevant:
69
+ - Pure frontend/UI frameworks without agent connection
70
+ - Business/management topics
71
+ - Hardware, networking, non-AI infrastructure
72
+ - Social media, marketing tools
73
+
74
+ For each item below, return: score (0-100) | reason (1 line)
75
+
76
+ Items:
77
+ {numbered_item_list}
40
78
  ```
41
79
 
42
- Geeknews-scout handles: `Claude|Anthropic|MCP|AI agent|에이전트|agentic|multi-agent|...`
80
+ ## Display Format
81
+
82
+ ```
83
+ [hada-scout] Scanning hada.io feed...
84
+ ├── Phase 1: Fetched {n} items
85
+ ├── Phase 2: Pre-scout → {passed}/{total} items passed (threshold: {t}%)
86
+ │ ├── ✓ {title1} (score: {s1}%)
87
+ │ ├── ✓ {title2} (score: {s2}%)
88
+ │ └── ✗ {title3} (score: {s3}%) — skipped
89
+ ├── Phase 3: Scout dispatch ({n} items, max 5)
90
+ │ ├── [1] /scout {url1} → {verdict}
91
+ │ └── [2] /scout {url2} → {verdict}
92
+ └── [Done] {created}/{dispatched} issues created
93
+ ```
43
94
 
44
95
  ## Label Scheme
45
96
 
46
97
  | Label | Purpose |
47
98
  |-------|---------|
48
99
  | `hada-scout` | Source identification — all hada-scout created issues |
49
- | `pending-scout` | Awaiting /scout analysis (set by Layer 1, cleared by Layer 2) |
50
100
  | `scout:internalize` | /scout verdict: adopt into project |
51
101
  | `scout:integrate` | /scout verdict: use as external dependency |
52
102
  | `scout:skip` | /scout verdict: not relevant |
53
103
 
54
104
  ## Cost Controls
55
105
 
56
- - Layer 2 runs at most **5 /scout executions per cron invocation**
57
- - Each /scout call costs ~$0.5–1.5 (sonnet)
58
- - Remaining `pending-scout` issues are processed in the next scheduled run
59
-
60
- ## Deployment
61
-
62
- - Pattern: same K8s CronJob structure as `infra/geeknews-scout/`
63
- - Host: `ubuntu-ext` cluster
64
- - Infrastructure files: `infra/hada-scout/`
65
- - `check-feed.sh` — Layer 1 feed poller
66
- - `scout-runner.sh` — Layer 2 /scout executor
67
- - `Dockerfile`
68
- - `cronjob.template.yaml`
69
- - `deploy.sh`
70
- - `.env.example`
106
+ | Stage | Model | Estimated Cost |
107
+ |-------|-------|----------------|
108
+ | Pre-scout (Phase 2) | haiku | ~$0.01–0.05 per run (50 items) |
109
+ | Full scout (Phase 3) | sonnet | ~$0.5–1.5 per item, max 5 per run |
110
+ | Total max per invocation | — | ~$8 |
71
111
 
72
112
  ## Environment Variables
73
113
 
74
114
  | Variable | Default | Description |
75
115
  |----------|---------|-------------|
76
- | `GH_TOKEN` | (required) | GitHub PAT for issue creation |
77
- | `REPO` | `baekenough/oh-my-customcode` | Target repo |
78
- | `FEED_URL` | `http://feeds.feedburner.com/geeknews-feed` | hada.io RSS feed |
79
- | `KEYWORDS` | (see above) | Pipe-separated keyword regex |
80
- | `MAX_SCOUT_PER_RUN` | `5` | Max /scout executions per Layer 2 run |
116
+ | `FEED_URL` | `https://feeds.feedburner.com/geeknews-feed` | RSS feed URL |
117
+ | `HADA_SCOUT_THRESHOLD` | `60` | Pre-scout score threshold (0–100) |
118
+ | `HADA_SCOUT_LIMIT` | `50` | Max feed items to fetch and score |
119
+ | `MAX_SCOUT_PER_RUN` | `5` | Max /scout executions per invocation |
120
+ | `GH_TOKEN` | (required) | GitHub PAT for issue creation and dedup |
81
121
 
82
122
  ## Integration
83
123
 
84
124
  | Rule | How |
85
125
  |------|-----|
86
- | R009 | Layer 1 and Layer 2 run as independent CronJobs |
87
- | R010 | Skill defines the architecture; implementation delegated to infra-docker-expert for K8s manifests |
88
- | scout skill | Layer 2 invokes `/scout` via `claude -p` subprocess |
89
-
90
- ## Tracking Issue
126
+ | R009 | Phase 3 scout dispatches run in parallel (up to 4 concurrent) |
127
+ | R010 | Orchestrator manages phases; analysis delegated to haiku/sonnet agents |
128
+ | R015 | Pre-scout scores and reasons displayed before dispatching full scouts |
129
+ | scout skill | Phase 3 invokes `/scout` via Skill tool for each candidate URL |
130
+
131
+ ## Differences from v1.0
132
+
133
+ | Aspect | v1.0 (keyword) | v2.0 (LLM pre-scout) |
134
+ |--------|----------------|----------------------|
135
+ | Filtering | Regex keyword match | LLM relevance scoring (haiku) |
136
+ | Invocation | External CronJob only | User-invocable `/hada-scout` + CronJob |
137
+ | Precision | Low (keyword false positives) | High (context-aware scoring) |
138
+ | Cost per scan | $0 (regex) + $2.5–7.5 (/scout) | $0.05 (pre-scout) + $2.5–7.5 (/scout) |
139
+ | False positive rate | ~30–40% | ~5–10% |
140
+ | Scope | `package` | `core` |
141
+
142
+ ## Tracking
91
143
 
92
144
  GitHub Issue #841
@@ -194,3 +194,47 @@ recall_errors:
194
194
  - Connection failure: Return empty with warning
195
195
  - Invalid query: Help user reformulate
196
196
  ```
197
+
198
+ ## MemKraft Bridge (Optional)
199
+
200
+ > External integration: [MemKraft](https://github.com/seojoonkim/memkraft) — zero-dependency compound memory for AI agents.
201
+ > Install: `pipx install memkraft`
202
+
203
+ ### When to Use
204
+
205
+ | Capability | claude-mem | MemKraft |
206
+ |-----------|-----------|----------|
207
+ | Session persistence | ✅ (Chroma) | ✅ (Markdown) |
208
+ | Entity tracking | ❌ | ✅ (person/org/concept) |
209
+ | Source attribution | ❌ | ✅ (`[Source: who, when, how]`) |
210
+ | Auto-maintenance | ❌ | ✅ (Dream Cycle) |
211
+ | CJK entity extraction | ❌ | ✅ (Korean/Chinese/Japanese) |
212
+ | Offline search | ❌ | ✅ (stdlib difflib) |
213
+
214
+ Use MemKraft when entity tracking or source attribution is needed. Use claude-mem for simple session persistence.
215
+
216
+ ### Commands
217
+
218
+ ```bash
219
+ # Extract entities from a document
220
+ memkraft extract <file>
221
+
222
+ # Get a brief on a topic
223
+ memkraft brief <topic>
224
+
225
+ # Run maintenance cycle (dedup, prune orphans)
226
+ memkraft dream
227
+ ```
228
+
229
+ ### Integration with sys-memory-keeper
230
+
231
+ At session end, sys-memory-keeper can optionally run MemKraft operations:
232
+
233
+ 1. `memkraft extract` on session summary → builds entity graph
234
+ 2. `memkraft dream` → prunes stale entries (run weekly, not every session)
235
+
236
+ ### Prerequisites
237
+
238
+ - Python 3.9+
239
+ - `pipx install memkraft`
240
+ - No API keys required (offline-only)
@@ -66,8 +66,8 @@ Map each approved item to the appropriate subagent by `targetType`:
66
66
  | targetType | Agent | Action |
67
67
  |------------|-------|--------|
68
68
  | agent | mgr-creator | Modify agent frontmatter/body |
69
- | skill | Matching domain expert | Revise skill SKILL.md |
70
- | routing | general-purpose | Update routing patterns |
69
+ | skill | mgr-creator | Revise skill SKILL.md (R010 Protected Paths) |
70
+ | routing | mgr-creator | Update routing patterns (R010 Protected Paths) |
71
71
  | model-escalation | general-purpose | Update model field in agent frontmatter |
72
72
 
73
73
  Spawn agents in parallel (max 4 per R009). Each agent receives:
@@ -63,6 +63,8 @@ Execute these steps to display available pipelines:
63
63
  - **Skill steps** (`skill: name`): Invoke via Skill tool — `Skill(skill: "{name}")`
64
64
  - **Prompt steps** (`prompt: text`): Execute the described action using appropriate agents/tools
65
65
  - **Foreach steps** (`foreach: collection`): Iterate over collection from previous step output
66
+ - **Parallel steps** (`parallel: [step1, step2]`): Execute contained steps concurrently using Agent tool. Each parallel step runs as an independent Agent. Max 4 concurrent per R009. Steps within a parallel block MUST be independent (no shared state, no sequential dependencies). Dependencies between parallel and non-parallel steps use `depends_on:` field.
67
+ - **Agent mode**: When spawning agents via Agent tool, always pass `mode: "bypassPermissions"` to match agent frontmatter. The Agent tool default (`acceptEdits`) overrides frontmatter `permissionMode`, causing permission prompts during unattended execution.
66
68
  5. Report completion or failure
67
69
 
68
70
  ### Resume Mode (/pipeline resume)
@@ -94,6 +96,48 @@ Track per-step state:
94
96
 
95
97
  State saved to `/tmp/.claude-pipeline-{name}-{PPID}.json` on failure.
96
98
 
99
+ ## Parallel Execution
100
+
101
+ Pipeline steps can be grouped for parallel execution:
102
+
103
+ ```yaml
104
+ steps:
105
+ - name: phase-1
106
+ parallel:
107
+ - name: task-a
108
+ skill: skill-a
109
+ description: First independent task
110
+ - name: task-b
111
+ skill: skill-b
112
+ description: Second independent task
113
+ - name: phase-2
114
+ skill: next-step
115
+ depends_on: phase-1
116
+ ```
117
+
118
+ ### Parallel Rules
119
+
120
+ - Max 4 concurrent steps per parallel block (R009 hard cap)
121
+ - Steps within a parallel block MUST be independent
122
+ - `depends_on` enforces ordering between blocks
123
+ - Each parallel step is spawned as a separate Agent tool call in the SAME message
124
+ - If any parallel step fails with `error: halt-and-report`, all remaining steps in the block are cancelled
125
+ - State tracking records each parallel step individually
126
+
127
+ ### Parallel State Format
128
+
129
+ ```json
130
+ {
131
+ "name": "phase-1",
132
+ "type": "parallel",
133
+ "status": "running",
134
+ "children": [
135
+ {"name": "task-a", "status": "completed", "duration_ms": 5000},
136
+ {"name": "task-b", "status": "running"}
137
+ ]
138
+ }
139
+ ```
140
+
97
141
  ## Error Handling
98
142
 
99
143
  - Pipeline not found → list available pipelines with suggestion
@@ -10,7 +10,7 @@ effort: medium
10
10
 
11
11
  ## Purpose
12
12
 
13
- After PR creation in the auto-dev release workflow, collect unaddressed findings and present actionable follow-up recommendations. The user chooses: execute now, register as issues, or skip.
13
+ After PR creation in the auto-dev release workflow, collect unaddressed findings and present actionable follow-up recommendations. Genuine defects and process gaps are registered as GitHub issues automatically (no user confirmation needed). Only code-changing "immediate action" items require user confirmation.
14
14
 
15
15
  ## Workflow
16
16
 
@@ -63,55 +63,73 @@ Remove duplicates (same issue referenced from multiple sources). Categorize:
63
63
  | **이슈 등록** | P3 이슈, LOW 검증 발견사항, 새 TODO, Medium PR 리뷰 발견사항 | 이슈로 등록 |
64
64
  | **참고** | 이미 추적 중인 이슈, 외관 관련 메모 | 건너뛰기 |
65
65
 
66
+ ### Auto-Register Genuine Defects (no-ask)
67
+
68
+ **Before presenting the summary to the user**, auto-register all "이슈 등록" category items that are genuine defects or process gaps. No user confirmation is required for these.
69
+
70
+ **Definition — auto-register if ANY of:**
71
+ - Genuine defect: a bug, regression, broken behavior, or incorrect output observed during verification
72
+ - Process gap: a workflow hole, missing guard, or coverage gap surfaced by deep-verify / triage
73
+ - Coverage gap: a missing test, missing documentation, or missing automation for a known scenario
74
+
75
+ **Definition — do NOT auto-register (keep for user choice):**
76
+ - Pure cosmetic / style preference notes
77
+ - Items that are purely subjective or opinion-based
78
+
79
+ **When ambiguous, lean toward registering.** Registering a borderline item costs nothing; missing a genuine defect costs a future session.
80
+
81
+ **How to auto-register:**
82
+ ```bash
83
+ gh issue create \
84
+ --title "{간결한 설명}" \
85
+ --body "## 출처\n\nv{version} 릴리즈 워크플로우에서 자동 등록.\n\n## 컨텍스트\n\n{상세 컨텍스트}\n\n## 권장 조치\n\n{권장 사항}" \
86
+ --label "professor"
87
+ ```
88
+ Add priority label (`P3` default for defects surfaced here; escalate to `P2` if MEDIUM+ severity).
89
+
90
+ **Authority**: user directive (session 102) — genuine defects found during release workflows should be registered without prompting. See also R016 Defect Response Matrix: CI/infra defect and Process gap both require Issue registration.
91
+
92
+ After auto-registering, include the created issue numbers in the summary display.
93
+
66
94
  ### 3. Present to User
67
95
 
68
- Display follow-up summary:
96
+ Auto-register all genuine defects first (see above). Then display follow-up summary showing what was already registered and what remains for user decision:
69
97
 
70
98
  ```
71
99
  [Follow-up] {n}개 후속 작업 발견
72
100
 
101
+ ━━━ 자동 등록 완료 ({count}개) ━━━
102
+ ✓ #{issue_number} — {description} (이미 등록됨)
103
+ ✓ #{issue_number} — {description} (이미 등록됨)
104
+
73
105
  ━━━ 즉시 실행 추천 ({count}개) ━━━
74
106
  1. {description} — 출처: {source}
75
107
  2. {description} — 출처: {source}
76
108
 
77
- ━━━ 이슈 등록 추천 ({count}개) ━━━
78
- 3. {description} — 출처: {source}
79
- 4. {description} — 출처: {source}
80
-
81
109
  ━━━ 참고 사항 ({count}개) ━━━
82
- 5. {description} — 이미 #{issue_number}로 추적 중
83
-
84
- 선택:
85
- [A] 추천대로 실행 (즉시 실행 + 이슈 등록)
86
- [B] 모두 즉시 실행
87
- [C] 모두 이슈 등록
88
- [D] 개별 선택 (항목별로 질문)
89
- [E] 건너뛰기
110
+ 3. {description} — 이미 #{issue_number}로 추적 중
111
+
112
+ 즉시 실행 항목 선택:
113
+ [A] 추천대로 실행 (즉시 실행 항목 모두 실행)
114
+ [B] 개별 선택 (항목별로 질문)
115
+ [C] 건너뛰기
90
116
  ```
91
117
 
92
- Use AskUserQuestion (or equivalent user prompt) to get the choice.
118
+ Use AskUserQuestion (or equivalent user prompt) to get the choice **only if there are "즉시 실행" items**. If there are none, skip the prompt and complete automatically.
93
119
 
94
120
  ### 4. Process User Choice
95
121
 
96
122
  **Option A (추천대로)**:
97
123
  - "Immediate" items → delegate to appropriate specialist agents for execution
98
- - "Trackable" items create GitHub issues via `gh issue create`
124
+ - (Trackable items were already auto-registered in step above)
99
125
  - "Informational" items → skip
100
126
 
101
- **Option B (모두 즉시 실행)**:
102
- - All Immediate + Trackable items delegate to specialist agents
103
- - Follow implementation patterns from the release workflow
104
-
105
- **Option C (모두 이슈 등록)**:
106
- - All Immediate + Trackable items → `gh issue create` with appropriate labels
107
- - Label: `professor` for auto-triage in next workflow run
108
-
109
- **Option D (개별 선택)**:
110
- - For each item, ask: `[{n}] {description} — 실행(E) / 이슈(I) / 건너뛰기(S)?`
127
+ **Option B (개별 선택)**:
128
+ - For each "즉시 실행" item, ask: `[{n}] {description} 실행(E) / 건너뛰기(S)?`
111
129
  - Process each per user choice
112
130
 
113
- **Option E (건너뛰기)**:
114
- - Skip all follow-up actions
131
+ **Option C (건너뛰기)**:
132
+ - Skip remaining immediate actions
115
133
  - Complete workflow
116
134
 
117
135
  ### 5. Report
@@ -126,7 +144,16 @@ Use AskUserQuestion (or equivalent user prompt) to get the choice.
126
144
 
127
145
  ## Issue Creation Template
128
146
 
129
- When creating follow-up issues:
147
+ For auto-registered genuine defects / process gaps:
148
+
149
+ ```bash
150
+ gh issue create \
151
+ --title "{간결한 설명}" \
152
+ --body "## 출처\n\nv{version} 릴리즈 워크플로우에서 자동 등록.\n\n## 컨텍스트\n\n{triage/verify에서의 상세 컨텍스트}\n\n## 권장 조치\n\n{권장 사항}" \
153
+ --label "professor"
154
+ ```
155
+
156
+ For user-requested issue creation (Option C fallback, if ever used):
130
157
 
131
158
  ```bash
132
159
  gh issue create \
@@ -135,12 +162,13 @@ gh issue create \
135
162
  --label "professor"
136
163
  ```
137
164
 
138
- Add priority label (`P1`, `P2`, `P3`) based on categorization.
165
+ Add priority label (`P1`, `P2`, `P3`) based on categorization. Default for auto-registered items: `P3` (escalate to `P2` for MEDIUM+ severity).
139
166
 
140
167
  ## Notes
141
168
 
142
169
  - This skill runs in the main conversation context (via workflow skill step)
143
- - User interaction is expected this is NOT a fully automated step
170
+ - Genuine defect/process gap items are auto-registered as issues WITHOUT user confirmation (session 102 directive)
171
+ - Only "즉시 실행" (code-changing immediate action) items require user confirmation
144
172
  - All file modifications delegated to specialist subagents per R010
145
173
  - Issue creation uses `gh` CLI directly (read-only operation pattern)
146
174
  - If no follow-up candidates found, report "No follow-up actions needed" and complete
@@ -22,17 +22,8 @@ Switch the active plugin set to match a workflow profile, reducing per-spawn ski
22
22
 
23
23
  ## Implementation rules
24
24
 
25
- > **MANDATORY — .claude/ path bypass (R010)**
26
- > ALL writes to `.claude/` paths MUST go through a `/tmp/*.sh` script via Bash.
27
- > Direct `Write(".claude/...")` or `Edit(".claude/...")` triggers user approval prompts
28
- > that block automation regardless of `bypassPermissions` mode.
29
- >
30
- > Pattern:
31
- > 1. Write tool → `/tmp/profile-{op}-$$.sh` with heredoc targeting `.claude/`
32
- > 2. Bash tool → `bash /tmp/profile-{op}-$$.sh`
33
- >
34
- > This applies to `.claude/profiles/.active` and `~/.claude/settings.json` writes.
35
- > Reference: R010 (MUST-orchestrator-coordination.md), #1046, #1052, #1062.
25
+ > **.claude/ path handling (CC v2.1.121+)**
26
+ > Direct Write/Edit on `.claude/profiles/.active` and `~/.claude/settings.json` is permitted under `mode: "bypassPermissions"` (CC v2.1.121+, #1101). The legacy `/tmp/*.sh` bypass is deprecated. For CC < v2.1.121, see git history for the legacy pattern.
36
27
 
37
28
  ## Profiles directory
38
29
 
@@ -35,6 +35,7 @@ A model allocation pattern that wraps implementation actions with stronger-model
35
35
  | Phase | Recommended Model | Rationale |
36
36
  |-------|------------------|-----------|
37
37
  | Pre-reasoning (analyze/plan) | opus | Complex architectural reasoning, edge case detection |
38
+ | Pre-reasoning (Opus 4.7) | opus47 | Opus 4.7 makes fewer tool calls and reasons more deeply; pre-reasoning phase should include explicit tool batch planning |
38
39
  | Action (implement/generate) | sonnet | Optimized for code generation, balanced cost |
39
40
  | Post-verification (review/test) | sonnet or haiku | Structural verification, checklist validation |
40
41
 
@@ -62,3 +63,23 @@ This pattern is used by:
62
63
  | Opus for everything | Wasteful, slow | Reserve opus for reasoning-heavy phases |
63
64
  | Haiku for planning | Insufficient depth | Use opus for complex analysis |
64
65
  | Skipping verification | False completion risk | Always include post-verification phase |
66
+ | Forcing frequent tool calls on Opus 4.7 | Fights model's natural reasoning-first tendency | Let Opus 4.7 reason; batch tool calls in pre-reasoning |
67
+
68
+ ## Opus 4.7 Considerations
69
+
70
+ Opus 4.7 exhibits a distinct behavioral pattern: fewer tool calls with deeper reasoning per call. This affects how the sandwich pattern is applied:
71
+
72
+ | Aspect | Opus 4.6 | Opus 4.7 |
73
+ |--------|----------|----------|
74
+ | Tool call frequency | Moderate | Lower |
75
+ | Reasoning depth per call | Standard | Deeper |
76
+ | Pre-reasoning benefit | Plan what to check | Plan explicit tool batch — model will under-call if not guided |
77
+
78
+ ### Pre-reasoning Adjustment for Opus 4.7
79
+
80
+ When using Opus 4.7 in the pre-reasoning phase:
81
+ 1. **Explicitly enumerate tools needed** — Opus 4.7 may skip tool calls it deems unnecessary
82
+ 2. **Batch tool-call plans upfront** — structure the action phase with a concrete tool sequence
83
+ 3. **Prefer fewer, richer tool calls** — align with the model's natural tendency
84
+
85
+ Reference: [Best practices for using Claude Opus 4.7 with Claude Code](https://claude.com/blog/best-practices-for-using-claude-opus-4-7-with-claude-code)
@@ -58,13 +58,13 @@ Before execution, show the plan:
58
58
 
59
59
  ```
60
60
  [Scout] {url}
61
- ├── Phase 1: Fetch & Summarize
62
- ├── Phase 2: Load Project Philosophy
63
- ├── Phase 3: Fit Analysis (sonnet)
64
- └── Phase 4: Issue Creation
61
+ ├── Phase 1: 콘텐츠 수집 및 요약
62
+ ├── Phase 2: 프로젝트 철학 로드
63
+ ├── Phase 3: 적합성 분석 (sonnet)
64
+ └── Phase 4: 이슈 생성
65
65
 
66
- Estimated: ~1 min | Cost: ~$0.5-1.5
67
- Execute? [Y/n]
66
+ 예상: ~1 | 비용: ~$0.5-1.5
67
+ 실행하시겠습니까? [Y/n]
68
68
  ```
69
69
 
70
70
  ## Workflow
@@ -90,7 +90,7 @@ Execute? [Y/n]
90
90
 
91
91
  ### Phase 3: Fit Analysis
92
92
 
93
- Spawn 1 sonnet agent with the following analysis prompt.
93
+ Spawn 1 sonnet agent with `mode: "bypassPermissions"` and the following analysis prompt.
94
94
 
95
95
  **Inputs**:
96
96
  - Fetched content summary (Phase 1)
@@ -133,6 +133,7 @@ Return a structured verdict:
133
133
  - philosophy_table: criterion/fit/rationale for each dimension
134
134
  - recommendation: specific integration plan or skip reason
135
135
  - next_steps: 2-3 actionable items
136
+ - IMPORTANT: Write all analysis output in Korean. Technical terms, code references, label names, and skill/agent names stay in English.
136
137
  - escalation: true/false (INTERNALIZE + M/L effort = true)
137
138
  ```
138
139
 
@@ -163,32 +164,32 @@ gh issue close {number} -c "Auto-closed: scout verdict is SKIP"
163
164
  ### Issue Body Template
164
165
 
165
166
  ```markdown
166
- ## Scout Report: {title}
167
+ ## Scout 리포트: {title}
167
168
 
168
- **Source**: {url}
169
- **Verdict**: {INTERNALIZE / INTEGRATE / SKIP}
170
- **Priority**: {P1 / P2 / P3}
169
+ **출처**: {url}
170
+ **판정**: {INTERNALIZE / INTEGRATE / SKIP}
171
+ **우선순위**: {P1 / P2 / P3}
171
172
 
172
- ## Summary
173
- {2-3 sentence summary of the external content}
173
+ ## 요약
174
+ {외부 콘텐츠에 대한 2-3문장 요약}
174
175
 
175
- ## Philosophy Alignment
176
- | Criterion | Fit | Rationale |
177
- |-----------|-----|-----------|
178
- | Compilation metaphor | {check/cross} | {explanation} |
179
- | Separation of concerns (R006) | {check/cross} | {explanation} |
180
- | Dynamic agent creation | {check/cross} | {explanation} |
181
- | Existing skill overlap | {check/cross} | {overlapping skills list} |
176
+ ## 프로젝트 철학 정합성
177
+ | 기준 | 적합 | 근거 |
178
+ |------|------|------|
179
+ | Compilation metaphor | {check/cross} | {설명} |
180
+ | Separation of concerns (R006) | {check/cross} | {설명} |
181
+ | Dynamic agent creation | {check/cross} | {설명} |
182
+ | 기존 스킬 중복 | {check/cross} | {중복 스킬 목록} |
182
183
 
183
- ## Recommendation
184
- {Specific integration planwhich skill/agent/guide to create, or why to skip}
184
+ ## 권장 사항
185
+ {구체적 통합 계획어떤 skill/agent/guide 생성할지, 또는 건너뛰는 이유}
185
186
 
186
- ## Next Steps
187
- - [ ] {follow-up action 1}
188
- - [ ] {follow-up action 2}
187
+ ## 다음 단계
188
+ - [ ] {후속 조치 1}
189
+ - [ ] {후속 조치 2}
189
190
 
190
191
  ---
191
- Generated by `/scout`
192
+ `/scout`에 의해 생성됨
192
193
  ```
193
194
 
194
195
  ## Escalation
@@ -196,18 +197,18 @@ Generated by `/scout`
196
197
  When verdict is `INTERNALIZE` and integration effort is M or L:
197
198
 
198
199
  ```
199
- [Advisory] Deep analysis recommended.
200
- └── Consider running: /research {url}
200
+ [Advisory] 심층 분석 권장.
201
+ └── 실행 검토: /research {url}
201
202
  ```
202
203
 
203
204
  ## Result Display
204
205
 
205
206
  ```
206
- [Scout Complete] {title}
207
- ├── Verdict: {INTERNALIZE / INTEGRATE / SKIP}
208
- ├── Priority: {P1 / P2 / P3}
209
- ├── Issue: #{number}
210
- └── Escalation: {/research recommended | none}
207
+ [Scout 완료] {title}
208
+ ├── 판정: {INTERNALIZE / INTEGRATE / SKIP}
209
+ ├── 우선순위: {P1 / P2 / P3}
210
+ ├── 이슈: #{number}
211
+ └── 에스컬레이션: {/research 권장 | 없음}
211
212
  ```
212
213
 
213
214
  ## Model Selection
@@ -43,15 +43,16 @@ Search the [skills.sh](https://skills.sh/) marketplace for reusable AI agent ski
43
43
  ├── Verify installation in .claude/skills/
44
44
  └── Check installed SKILL.md frontmatter
45
45
 
46
- 4. Post-install adaptation
47
- ├── Review installed SKILL.md frontmatter
48
- ├── Add oh-my-customcode fields if missing:
49
- │ ├── user-invocable: true|false
50
- │ ├── model-invocable (if not present)
51
- │ └── argument-hint (if applicable)
52
- └── Add source metadata:
53
- ├── source-type: skills-sh
54
- └── source-origin: <owner/repo>
46
+ 4. Post-install adaptation (delegate to mgr-creator per R010 Protected Paths)
47
+ ├── Delegate SKILL.md frontmatter adaptation to mgr-creator:
48
+ ├── Add oh-my-customcode fields if missing:
49
+ ├── user-invocable: true|false
50
+ ├── model-invocable (if not present)
51
+ └── argument-hint (if applicable)
52
+ └── Add source metadata:
53
+ ├── source-type: skills-sh
54
+ └── source-origin: <owner/repo>
55
+ └── mgr-creator validates R006 frontmatter compliance
55
56
 
56
57
  5. Ontology sync
57
58
  ├── Notify: run "omcustom ontology build" to register new skill