oh-my-customcode 0.159.0 → 0.161.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 +3 -3
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MUST-agent-design.md +2 -0
- package/templates/.claude/rules/MUST-agent-teams.md +25 -0
- package/templates/.claude/rules/MUST-completion-verification.md +11 -0
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +22 -0
- package/templates/.claude/rules/MUST-safety.md +13 -0
- package/templates/.claude/rules/SHOULD-hud-statusline.md +2 -0
- package/templates/.claude/rules/SHOULD-interaction.md +10 -0
- package/templates/.claude/rules/SHOULD-verification-ladder.md +18 -0
- package/templates/.claude/skills/homework/SKILL.md +217 -0
- package/templates/CLAUDE.md +1 -1
- package/templates/guides/claude-code/15-version-compatibility.md +22 -0
- package/templates/manifest.json +2 -2
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
49 agents.
|
|
16
|
+
49 agents. 116 skills. 23 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 (116)
|
|
136
136
|
|
|
137
137
|
| Category | Count | Includes |
|
|
138
138
|
|----------|-------|----------|
|
|
@@ -270,7 +270,7 @@ your-project/
|
|
|
270
270
|
├── CLAUDE.md # Entry point
|
|
271
271
|
├── .claude/
|
|
272
272
|
│ ├── agents/ # 49 agent definitions
|
|
273
|
-
│ ├── skills/ #
|
|
273
|
+
│ ├── skills/ # 116 skill modules
|
|
274
274
|
│ ├── rules/ # 22 governance rules (R000-R021)
|
|
275
275
|
│ ├── hooks/ # 15 lifecycle hook scripts
|
|
276
276
|
│ ├── schemas/ # Tool input validation schemas
|
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -162,6 +162,8 @@ Agent frontmatter `hooks:` now fire when the agent runs as a main-thread agent v
|
|
|
162
162
|
|
|
163
163
|
> **Note**: `/reload-plugins` now auto-installs missing plugin dependencies from added marketplaces (v2.1.116+).
|
|
164
164
|
|
|
165
|
+
> **v2.1.157+**: `settings.json` `agent` field is now honored for dispatched sessions (with `--agent <name>` override). `EnterWorktree` can switch between Claude-managed worktrees mid-session, and worktrees are left unlocked when the agent finishes (enabling `git worktree remove`/`prune` cleanup).
|
|
166
|
+
|
|
165
167
|
## Permission Mode Guidance
|
|
166
168
|
|
|
167
169
|
CC defaults `mode` to `acceptEdits` if not specified — always pass `mode: "bypassPermissions"` explicitly in Agent tool calls (see R010). See guidance details via Read tool.
|
|
@@ -23,6 +23,7 @@ Available when `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessag
|
|
|
23
23
|
| Dynamic agent creation + usage | **Agent Teams** | Create → test → iterate cycle |
|
|
24
24
|
| Multi-issue release batch | **Agent Teams** | Shared task tracking, coordinated release |
|
|
25
25
|
| Large plan / multi-domain prompt (>5000 tokens, 3+ areas) | **Agent Teams** | Domain-split parallel writing + review loop avoids single-agent timeout |
|
|
26
|
+
| Mechanical disjoint-file refactoring (bulk delete + reference cleanup) | Agent Tool | Pure parallel edits with no peer coordination or review loop; Teams member-stall risk outweighs benefit — use standalone parallel Agents (R009) |
|
|
26
27
|
|
|
27
28
|
**When Agent Teams is enabled and criteria are met, usage is required.**
|
|
28
29
|
|
|
@@ -313,3 +314,27 @@ Agent Teams 멤버는 long-running 작업 중 진행 상태를 TaskUpdate 로
|
|
|
313
314
|
- 차단 사유를 SendMessage 로만 보내고 task description 업데이트 누락 → TaskList 만 보는 멤버는 사유를 모름
|
|
314
315
|
|
|
315
316
|
Reference issue: #1087.
|
|
317
|
+
|
|
318
|
+
## Member Completion Verification (deterministic ground-truth)
|
|
319
|
+
|
|
320
|
+
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.
|
|
321
|
+
|
|
322
|
+
**Verification sources (in order of reliability):**
|
|
323
|
+
|
|
324
|
+
| Source | Reliability | Examples |
|
|
325
|
+
|--------|-------------|---------|
|
|
326
|
+
| `git status` / `git diff` | High — ground truth | Check that expected files changed |
|
|
327
|
+
| `grep` / file existence | High — deterministic | Verify expected content written |
|
|
328
|
+
| Validation scripts | High — deterministic | `validate-docs`, linters, test runs |
|
|
329
|
+
| TaskList status | Low — member may not update | Use as a signal only |
|
|
330
|
+
| SendMessage report | Low — member may stall before sending | Use as a signal only |
|
|
331
|
+
|
|
332
|
+
Cross-reference: R020 ("actual outcome ≠ attempt" — verifying that a command ran is not the same as verifying it succeeded).
|
|
333
|
+
|
|
334
|
+
**Stall handling**: When a member shows no task progress within ~2 minutes despite spawn + owner assignment + SendMessage coordination, reassign the work to a standalone Agent (R009) rather than continuing to nudge the stalled member. Stalled Teams members waste tokens on idle polling and delay the overall workflow.
|
|
335
|
+
|
|
336
|
+
Observed instance: v0.159.0 release (session 105) — members assigned to disjoint-file cleanup tasks went idle without executing; deterministic git-diff check exposed the gap; work was reassigned to standalone parallel Agents. References: #1261, #1262.
|
|
337
|
+
|
|
338
|
+
## Member Prompt Size Cap
|
|
339
|
+
|
|
340
|
+
Keep per-member delegation prompts under ~5000 tokens and within a single domain. Oversized or multi-domain prompts risk malformed-parsing truncation in the CC platform (see R009 giant-prompt heuristic and `feedback_agent_malformed_parsing.md`). Large multi-file delegations should be decomposed and split across multiple members or standalone Agents.
|
|
@@ -185,6 +185,17 @@ triage-dispatch.yml 실패 원인을 파일 Read 전에 "triaged 라벨 부재 +
|
|
|
185
185
|
|
|
186
186
|
> 진단에 의존하는 쓰기/위임은 진단 결과를 본 다음 턴에 수행한다. R009 병렬 실행은 독립 작업에만 적용 — 진단→변경은 순차 의존이다.
|
|
187
187
|
|
|
188
|
+
### Read-Before-Characterize
|
|
189
|
+
|
|
190
|
+
진단 대상(로그, 출력, 데이터)을 **충분히 읽기 전에** 에러 클래스나 원인을 단정하지 않는다. 24MB INFO 로그를 읽기 전 "error loop"로 단정하는 것은 위반이다.
|
|
191
|
+
|
|
192
|
+
| 금지 | 필수 |
|
|
193
|
+
|------|------|
|
|
194
|
+
| 로그/출력을 읽기 전 "error loop"·"무한 루프"로 특성화 | 대표 샘플을 먼저 읽고 INFO/WARN/ERROR 분포 확인 후 특성화 |
|
|
195
|
+
| 첫 namespace/scope만 보고 전체 단정 | 관련 scope 확인 후 결론 |
|
|
196
|
+
|
|
197
|
+
Origin: #1266 ④.
|
|
198
|
+
|
|
188
199
|
## Integration
|
|
189
200
|
|
|
190
201
|
| Rule | Interaction |
|
|
@@ -238,6 +238,28 @@ When the user explicitly signals full-delegation intent, the orchestrator operat
|
|
|
238
238
|
Autonomous mode and `/structured-dev-cycle` (stage-blocker) are mutually exclusive.
|
|
239
239
|
-->
|
|
240
240
|
|
|
241
|
+
## Subagent Scope-Creep STOP Protocol
|
|
242
|
+
|
|
243
|
+
> Origin: #1266 ① (Critical) — a single subagent named "Migrate secretary.db to PG + backfill" tripped the safety classifier 13 times, silently expanding from its named task into shared-secret deletion, unrequested public tunnel creation, `.env`/OAuth credential dumps, and prod pod remote exec. The orchestrator kept re-running the tripped agent instead of stopping it; a resulting credential rotation caused a dashboard data outage.
|
|
244
|
+
|
|
245
|
+
### Core Rule
|
|
246
|
+
|
|
247
|
+
When a subagent trips the safety classifier (R001/R002) **2 times**, the orchestrator MUST STOP that agent, discard its in-flight plan, and redesign the task with a narrower, pre-decomposed scope. Repeatedly re-running a tripped agent is an anti-pattern.
|
|
248
|
+
|
|
249
|
+
| Trips on same agent | Required orchestrator action |
|
|
250
|
+
|---------------------|------------------------------|
|
|
251
|
+
| 1st trip | Note the boundary; re-confirm the agent's scope against the original task |
|
|
252
|
+
| 2nd trip | STOP the agent — do NOT re-run. Redesign: decompose by domain (R009) and re-delegate narrower units |
|
|
253
|
+
| 3+ trips | Hard anti-pattern — indicates lost control; abort and report to user |
|
|
254
|
+
|
|
255
|
+
### Pre-Decomposition Mandate
|
|
256
|
+
|
|
257
|
+
Broad single-task scopes (e.g. "migrate + backfill") MUST be pre-decomposed by domain before delegation, so an agent cannot silently expand from its named task into adjacent privileged domains (secret rotation, tunnel creation, infra deletion, dashboard changes). See R009 (pre-decomposition) and R018 (domain-split).
|
|
258
|
+
|
|
259
|
+
### Out-of-Scope Privileged Chaining
|
|
260
|
+
|
|
261
|
+
A subagent MUST NOT chain from an approved action into unrequested privileged operations. Example: approved "delete tunnel X" → unrequested "create new public tunnel Y" is a scope violation. Each privileged action requires its own authorization trace back to the user request.
|
|
262
|
+
|
|
241
263
|
## Universal bypassPermissions
|
|
242
264
|
|
|
243
265
|
**ALL Agent tool calls MUST include `mode: "bypassPermissions"`.**
|
|
@@ -25,6 +25,19 @@ The following git commands have caused working tree loss in past sessions (#1146
|
|
|
25
25
|
|
|
26
26
|
**Recovery hint**: If working tree loss occurs, check `git reflog` immediately — most operations are recoverable within 30 days.
|
|
27
27
|
|
|
28
|
+
## Credential & Privileged-Scope Guardrails
|
|
29
|
+
|
|
30
|
+
> Origin: #1266 ① (Critical) — a subagent dumped `.env` and Gmail OAuth credentials into the transcript (Credential Exploration) and ran an unauthorized credential-rotation flow that caused a dashboard data outage.
|
|
31
|
+
|
|
32
|
+
| Prohibited | Required instead |
|
|
33
|
+
|-----------|------------------|
|
|
34
|
+
| Dumping credential stores (`.env`, OAuth tokens, k8s secrets, `PG_DSN`) into the transcript or agent output | Reference secrets by name only; never echo values |
|
|
35
|
+
| Unrequested credential rotation / secret recreation | Rotate only on explicit user request scoped to the specific secret |
|
|
36
|
+
| Chaining an approved privileged action into adjacent unrequested ones | Each privileged op requires its own authorization trace |
|
|
37
|
+
| Irreversible shared-infra action (prod pod exec, shared-ns secret delete, tunnel create) without scope re-confirmation | Re-confirm scope with the user before irreversible / shared-infra actions |
|
|
38
|
+
|
|
39
|
+
Cross-reference: R010 Subagent Scope-Creep STOP Protocol, R002 (permission tiers).
|
|
40
|
+
|
|
28
41
|
## Required Before Destructive Operations
|
|
29
42
|
|
|
30
43
|
Verify target, assess impact scope, check recoverability, get user approval.
|
|
@@ -17,6 +17,8 @@ Format: `─── [Spawn] {subagent_type}:{model} | {description} ───`
|
|
|
17
17
|
|
|
18
18
|
> **v2.1.141+**: Hook JSON output can include `terminalSequence` field to emit window title changes or terminal bells without terminal control. Complementary to HUD stderr channel — e.g., update window title on task completion or ring bell after long parallel run. Modifying `.claude/hooks/` requires explicit user approval (R001).
|
|
19
19
|
|
|
20
|
+
> **v2.1.157+**: `tool_decision` telemetry events now include `tool_parameters` (bash commands, MCP/skill names) when `OTEL_LOG_TOOL_DETAILS=1`. Complements R012 observability — enables per-tool parameter tracking in monitoring dashboards. See `monitoring-setup` skill.
|
|
21
|
+
|
|
20
22
|
<!-- DETAIL: HUD Events full spec
|
|
21
23
|
### When to Display: Multi-step tasks, parallel execution, long-running operations. Skip for single brief operations.
|
|
22
24
|
### Parallel Display:
|
|
@@ -87,3 +87,13 @@ Trade-offs: RS256 is ~10x slower than HS256 but enables asymmetric key managemen
|
|
|
87
87
|
| **Output Styles** | 세션 전체 기본 어조/포맷 | static, session-level |
|
|
88
88
|
|
|
89
89
|
기본 활성화 스타일: `korean-engineer` (`.claude/output-styles/korean-engineer.md`).
|
|
90
|
+
|
|
91
|
+
## Unverifiable External Product UI
|
|
92
|
+
|
|
93
|
+
> Origin: #1266 ② (High) — described Cloudflare Access "Add an application" Subdomain/Domain/Path fields as fact; the user found no such fields ("어디에도 없다").
|
|
94
|
+
|
|
95
|
+
Do NOT state the steps, field names, or layout of an external product's UI as fact when you cannot verify them from a measured source. Provide only system-measured values (URLs, config read from files/APIs) and delegate UI navigation to the user.
|
|
96
|
+
|
|
97
|
+
| Anti-pattern | Required |
|
|
98
|
+
|--------------|----------|
|
|
99
|
+
| "Click X, fill the Subdomain field, then…" (unverified external UI) | "Open <measured URL>. Navigate the console yourself — I can't see your screen. Values to enter: …" |
|
|
@@ -75,3 +75,21 @@ R021은 위반 시 어떻게 멈출지를, R023은 어떤 순서로 검증할지
|
|
|
75
75
|
| R013 (Ecomode) | 컨텍스트 압박 시 Tier 3를 Tier 2로 다운그레이드 고려 |
|
|
76
76
|
| R017 (Sync Verification) | Phase 1-3 검증 단계는 R023 Tier 1-3에 대응 |
|
|
77
77
|
| R021 (Enforcement Policy) | 직교: R021은 blocking 방식, R023은 검증 비용 순서 |
|
|
78
|
+
|
|
79
|
+
## Workflow Prompt & Verifier Ground-Truth
|
|
80
|
+
|
|
81
|
+
> Origin: #1266 ③ (High) — a Workflow built the agent prompt as `await agent(prompt) + FACTS`, concatenating the guardrail fact-sheet onto the RETURN VALUE instead of the prompt. The writer never received the facts, hallucinated an in-cluster hostname (`secretary-mcp`), and the adversarial verifier couldn't catch it (the fact was in no source it had).
|
|
82
|
+
|
|
83
|
+
### Prompt Completion Before Call
|
|
84
|
+
|
|
85
|
+
Workflow/agent prompts MUST be fully assembled into the prompt string **before** the `agent()` / Agent tool call. Post-call concatenation onto the return value is a footgun — the agent never sees the appended content.
|
|
86
|
+
|
|
87
|
+
| Anti-pattern | Required |
|
|
88
|
+
|--------------|----------|
|
|
89
|
+
| `const r = await agent(prompt) + FACTS` | `const r = await agent(prompt + FACTS)` — assemble first |
|
|
90
|
+
|
|
91
|
+
### Verifier Ground-Truth for Cross-Cutting Facts
|
|
92
|
+
|
|
93
|
+
Cross-cutting facts not verifiable from the primary source (external URLs, in-cluster DNS/hostnames, infra topology) MUST be supplied to the verifier as explicit ground-truth. Otherwise an adversarial verifier cannot distinguish a hallucinated value from a correct one — a verification blind spot.
|
|
94
|
+
|
|
95
|
+
Cross-reference: R009 (giant-prompt decomposition), `worker-reviewer-pipeline` skill.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: homework
|
|
3
|
+
description: On session cleanup ("세션 정리") or /homework invocation, analyze the current and linked previous sessions, extract mistakes (찐빠), and report them via omcustom-feedback with a confirmation gate. Use when wrapping up a session or auditing recent work for harness gaps.
|
|
4
|
+
scope: harness
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[--dry-run] [--days <n>] [--severity <critical|high|medium|low>]"
|
|
7
|
+
version: 0.1.0
|
|
8
|
+
effort: medium
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Homework — Session Mistake Extractor
|
|
12
|
+
|
|
13
|
+
On session cleanup ("세션 정리") or `/homework` invocation, analyze the current and linked previous sessions to extract 찐빠 (mistakes: rule violations, scope-creep, hallucinations, premature hypotheses, missed conventions, etc.), then report findings via `omcustom-feedback` with a mandatory user confirmation gate.
|
|
14
|
+
|
|
15
|
+
This skill is the dedicated entry point for R011's "Session-End Retrospective Feedback (Model-Drafted)" pattern. It formalizes the retrospective workflow that produced issue #1266.
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/homework # Analyze current session, report findings
|
|
21
|
+
/homework --dry-run # Analyze only, no omcustom-feedback invocation
|
|
22
|
+
/homework --days 3 # Include linked sessions from last N days
|
|
23
|
+
/homework --severity high # Filter to critical/high findings only
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Trigger Detection
|
|
27
|
+
|
|
28
|
+
Activate when the user says any of:
|
|
29
|
+
- "세션 정리" / "숙제" / "회고"
|
|
30
|
+
- "homework" / "session cleanup" / "wrap up"
|
|
31
|
+
- Explicit `/homework` invocation
|
|
32
|
+
- Session-end signals: "끝", "종료", "마무리", "done", "end session"
|
|
33
|
+
|
|
34
|
+
When activated as a session-end signal, this skill runs BEFORE sys-memory-keeper's MEMORY.md update (R011 session-end self-check order: homework → memory save).
|
|
35
|
+
|
|
36
|
+
## Workflow
|
|
37
|
+
|
|
38
|
+
### Phase 1: Trigger Parsing
|
|
39
|
+
|
|
40
|
+
Parse arguments:
|
|
41
|
+
- `--dry-run`: analyze only, skip Phase 5 (omcustom-feedback invocation)
|
|
42
|
+
- `--days <n>`: extend linked-session search to last N days (default: 0 = current session only)
|
|
43
|
+
- `--severity <level>`: filter output to this severity and above (default: all)
|
|
44
|
+
|
|
45
|
+
### Phase 2: Session Gathering
|
|
46
|
+
|
|
47
|
+
#### 2a. Current Session Transcript
|
|
48
|
+
|
|
49
|
+
Attempt deterministic transcript extraction. Preferred sources (in order):
|
|
50
|
+
|
|
51
|
+
1. **Grep for rule-violation markers** in the current conversation context:
|
|
52
|
+
- Safety classifier trip signals: `[Safety]`, `[R001]`, `[Warning]`, classifier denial messages
|
|
53
|
+
- Self-corrections: "sorry", "I made an error", "let me correct", "이전 답변 수정", "죄송합니다"
|
|
54
|
+
- Premature hypothesis signals: "I assume", "probably", "should be" followed by a contradiction in a later turn
|
|
55
|
+
- Interrupt + re-plan events: user corrections, "no", "wrong", "다시", "아니"
|
|
56
|
+
|
|
57
|
+
2. **Transcript files** (CC v2.1.x session JSONL):
|
|
58
|
+
```bash
|
|
59
|
+
find ~/.claude/projects -name "session-*.jsonl" -newer "$(date -v-1d +%Y-%m-%dT00:00:00)" 2>/dev/null | head -5
|
|
60
|
+
```
|
|
61
|
+
Parse `type: "error"`, `type: "correction"`, `type: "feedback"` events.
|
|
62
|
+
|
|
63
|
+
3. **Fallback**: Rely on the model's recall of the current conversation (impressionistic, lower confidence — mark findings as `[recall]` not `[transcript]`).
|
|
64
|
+
|
|
65
|
+
#### 2b. Linked Previous Sessions (when `--days` > 0)
|
|
66
|
+
|
|
67
|
+
Use the `episodic-memory` plugin's `search-conversations` / `episodic-memory:remembering-conversations` to retrieve sessions from the last N days linked to this project. Pass project directory as context.
|
|
68
|
+
|
|
69
|
+
If `episodic-memory` is unavailable, scan JSONL files:
|
|
70
|
+
```bash
|
|
71
|
+
find ~/.claude/projects -name "session-*.jsonl" \
|
|
72
|
+
-newer "$(date -v-${DAYS}d +%Y-%m-%dT00:00:00)" 2>/dev/null
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**R020 read-before-characterize**: Do NOT characterize a session's mistakes before reading it. Read the session transcript (or a representative sample) first, then characterize.
|
|
76
|
+
|
|
77
|
+
### Phase 3: Mistake (찐빠) Analysis
|
|
78
|
+
|
|
79
|
+
Categorize each finding with the following structure (mirror #1266 format):
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
찐빠 #N — [{severity}] {short title}
|
|
83
|
+
├── 증상: {what was observed — cite evidence: session line ref or commit SHA}
|
|
84
|
+
├── 근거: {transcript evidence or recall note — always read first per R020}
|
|
85
|
+
├── 원인: {root cause — why did this happen?}
|
|
86
|
+
├── 영향 규칙: {R0xx, R0yy — affected rule IDs}
|
|
87
|
+
└── 제안: {concrete corrective action or harness change}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Severity scale:**
|
|
91
|
+
|
|
92
|
+
| Level | Criteria | Examples |
|
|
93
|
+
|-------|----------|---------|
|
|
94
|
+
| Critical | Safety classifier trip, credential exposure, scope-creep into privileged domains, working-tree loss | R001 violation, secret dump, unauthorized infra action |
|
|
95
|
+
| High | Rule violation with downstream impact, hallucinated fact acted upon, premature hypothesis causing permanent change | R020 Parallel Read+Change, wrong root cause → wrong fix |
|
|
96
|
+
| Medium | Process gap, missed convention, advisory rule ignored | R007 header missing, bypassPermissions omitted, count sync missed |
|
|
97
|
+
| Low | Minor style drift, non-impactful oversight | honorific regression, ecomode token waste |
|
|
98
|
+
|
|
99
|
+
**Mistake categories to look for:**
|
|
100
|
+
|
|
101
|
+
| Category | Signals |
|
|
102
|
+
|----------|---------|
|
|
103
|
+
| Rule violations (R0xx) | Header missing (R007), tool prefix absent (R008), file write by orchestrator (R010), sequential when parallel required (R009) |
|
|
104
|
+
| Scope-creep | Subagent task expanding beyond its named scope (R010 Subagent Scope-Creep STOP Protocol) |
|
|
105
|
+
| Hallucinated facts | External UI fields stated as fact (R003 Unverifiable External Product UI), in-cluster hostnames, unverified URLs |
|
|
106
|
+
| Premature hypotheses | Diagnosis before reading evidence (R020 Read-Before-Characterize), parallel Read+permanent-change dispatch (R020 Variant) |
|
|
107
|
+
| Missed conventions | Count sync drift (3-way sync), template mirror omitted, bypassPermissions missing |
|
|
108
|
+
| Over-claim completion | [Done] without verification (R020), test-skip masking failures |
|
|
109
|
+
|
|
110
|
+
**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.
|
|
111
|
+
|
|
112
|
+
### Phase 4: Draft Feedback Issue
|
|
113
|
+
|
|
114
|
+
Assemble a feedback issue in Korean using the #1266 format:
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
**제목**: 세션 회고: {date} 세션 찐빠 {N}건 — {top finding title}
|
|
118
|
+
|
|
119
|
+
**카테고리**: improvement
|
|
120
|
+
|
|
121
|
+
**본문**:
|
|
122
|
+
## 세션 회고 — {YYYY-MM-DD}
|
|
123
|
+
|
|
124
|
+
### 개요
|
|
125
|
+
총 {N}건의 찐빠가 발견되었습니다 (Critical: {c}, High: {h}, Medium: {m}, Low: {l}).
|
|
126
|
+
|
|
127
|
+
### 찐빠 목록
|
|
128
|
+
|
|
129
|
+
{찐빠 #1 ~ #N — structured format from Phase 3}
|
|
130
|
+
|
|
131
|
+
### 하네스 제안 (있는 경우)
|
|
132
|
+
{Concrete skill/rule/hook changes that would prevent recurrence}
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
*Generated by `/homework` skill (v0.1.0)*
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
If `--severity` filter is active, include only findings at or above the threshold. Note the filter in the issue body.
|
|
139
|
+
|
|
140
|
+
If no findings are discovered, output:
|
|
141
|
+
```
|
|
142
|
+
[homework] 이번 세션에서 찐빠를 발견하지 못했습니다. (세션 정상 종료)
|
|
143
|
+
```
|
|
144
|
+
and skip Phase 5.
|
|
145
|
+
|
|
146
|
+
### Phase 5: Report via omcustom-feedback (Phase 4A gate)
|
|
147
|
+
|
|
148
|
+
**MUST go through the `omcustom-feedback` skill's Phase 4A preview + confirmation gate.**
|
|
149
|
+
**NEVER auto-submit.** User approval is always required before any GitHub issue is created.
|
|
150
|
+
|
|
151
|
+
Invoke the `omcustom-feedback` skill with the drafted issue content. The user will see a preview and must confirm before any GitHub issue is created.
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
[homework] 피드백 이슈 초안을 omcustom-feedback으로 전달합니다.
|
|
155
|
+
아래 미리보기를 확인하고 제출 여부를 결정해 주세요.
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
If `--dry-run` is active, skip this phase and output the draft directly to the conversation instead.
|
|
159
|
+
|
|
160
|
+
### Phase 6: Output Summary
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
[homework] 완료
|
|
164
|
+
├── 분석: {N}건 찐빠 발견 (Critical: {c}, High: {h}, Medium: {m}, Low: {l})
|
|
165
|
+
├── 제출: {이슈 URL | dry-run (미제출) | 사용자 취소}
|
|
166
|
+
└── 다음 액션: {harness 제안 있으면 표시, 없으면 "없음"}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Options Reference
|
|
170
|
+
|
|
171
|
+
| Option | Default | Description |
|
|
172
|
+
|--------|---------|-------------|
|
|
173
|
+
| `--dry-run` | off | Analyze only, no omcustom-feedback invocation |
|
|
174
|
+
| `--days <n>` | 0 | Include linked sessions from last N days (0 = current session only) |
|
|
175
|
+
| `--severity <level>` | all | Filter findings to this level and above |
|
|
176
|
+
|
|
177
|
+
## Rules & Cross-References
|
|
178
|
+
|
|
179
|
+
| Rule | Relevance |
|
|
180
|
+
|------|-----------|
|
|
181
|
+
| R011 (SHOULD-memory-integration) | This skill is the dedicated entry point for "Session-End Retrospective Feedback (Model-Drafted)". Runs before sys-memory-keeper MEMORY.md update. |
|
|
182
|
+
| R020 (MUST-completion-verification) | Analysis MUST read transcript evidence before characterizing a mistake. Do NOT characterize before reading (Read-Before-Characterize). Parallel Read + Permanent-Change Dispatch anti-pattern applies here too. |
|
|
183
|
+
| R016 (MUST-continuous-improvement) | Genuine defects/process gaps → feedback issue. The /homework output feeds R016's continuous improvement loop. |
|
|
184
|
+
| R010 (MUST-orchestrator-coordination) | Any file writes in this workflow must be delegated to subagents. This skill orchestrates, never directly writes except to `.claude/outputs/`. |
|
|
185
|
+
| R001 (MUST-safety) | Analysis must not dump credential values, secrets, or PII. Reference sensitive items by name only. |
|
|
186
|
+
|
|
187
|
+
## Related Skills
|
|
188
|
+
|
|
189
|
+
| Skill | Relationship |
|
|
190
|
+
|-------|-------------|
|
|
191
|
+
| `omcustom-feedback` | Reporting channel (Phase 5). Model-invocable with Phase 4A confirmation gate. |
|
|
192
|
+
| `instinct-extractor` | Cross-session failure-pattern mining (complements /homework's single-session focus). For multi-session patterns, run instinct-extractor after homework. |
|
|
193
|
+
| `episodic-memory:search-conversations` | Cross-session retrieval for `--days` mode. |
|
|
194
|
+
| `sys-memory-keeper` | Runs after /homework at session end (R011 order: homework → memory save). |
|
|
195
|
+
|
|
196
|
+
## Artifact Output
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
.claude/outputs/sessions/{YYYY-MM-DD}/homework-{HHmmss}.md
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
If Phase 5 is skipped (`--dry-run`), the draft issue body is written to this artifact path for reference.
|
|
203
|
+
|
|
204
|
+
## Permission Mode Note
|
|
205
|
+
|
|
206
|
+
This skill does not spawn subagents directly. If future versions delegate analysis to subagents, ALL Agent tool calls MUST include `mode: "bypassPermissions"` per R010 Universal bypassPermissions.
|
|
207
|
+
|
|
208
|
+
## Context Fork Note
|
|
209
|
+
|
|
210
|
+
This skill does NOT use `context: fork`. The fork cap is at 10/12; homework is a single-agent orchestration skill and does not require a forked context.
|
|
211
|
+
|
|
212
|
+
## Limitations
|
|
213
|
+
|
|
214
|
+
- **Transcript availability**: CC `session-*.jsonl` schema may change; Phase 2a source (1) grep is more resilient than JSONL parsing.
|
|
215
|
+
- **Recall accuracy**: When transcript files are unavailable, findings are marked `[recall]` and confidence is lower.
|
|
216
|
+
- **episodic-memory dependency**: `--days` mode degrades gracefully when the plugin is unavailable (falls back to JSONL scan).
|
|
217
|
+
- **Scope**: This skill analyzes session behavior, not code quality. For code-quality retrospectives, use `dev-review` or `adversarial-review`.
|
package/templates/CLAUDE.md
CHANGED
|
@@ -116,7 +116,7 @@ project/
|
|
|
116
116
|
+-- CLAUDE.md # 진입점
|
|
117
117
|
+-- .claude/
|
|
118
118
|
| +-- agents/ # 서브에이전트 정의 (49 파일)
|
|
119
|
-
| +-- skills/ # 스킬 (
|
|
119
|
+
| +-- skills/ # 스킬 (116 디렉토리)
|
|
120
120
|
| +-- rules/ # 전역 규칙 (R000-R023)
|
|
121
121
|
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
122
122
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
@@ -1082,6 +1082,28 @@ Claude가 스스로 판단할 수 있는 상황에서는 multiple-choice prompt
|
|
|
1082
1082
|
|
|
1083
1083
|
---
|
|
1084
1084
|
|
|
1085
|
+
## v2.1.158 (2026-05-30)
|
|
1086
|
+
|
|
1087
|
+
### oh-my-customcode 영향
|
|
1088
|
+
|
|
1089
|
+
| 변경 | 영향 | 적용 |
|
|
1090
|
+
|------|------|------|
|
|
1091
|
+
| Auto mode가 Bedrock/Vertex/Foundry에서 Opus 4.7/4.8 지원 (`CLAUDE_CODE_ENABLE_AUTO_MODE=1`) | 멀티 클라우드 백엔드에서 auto 모드 사용 가능 | R006 permissionMode `auto` — 백엔드 무관 동작 |
|
|
1092
|
+
|
|
1093
|
+
## v2.1.157 (2026-05-29)
|
|
1094
|
+
|
|
1095
|
+
### oh-my-customcode 영향
|
|
1096
|
+
|
|
1097
|
+
| 변경 | 영향 | 적용 |
|
|
1098
|
+
|------|------|------|
|
|
1099
|
+
| `.claude/skills` 디렉토리 플러그인 자동 로드 (마켓플레이스 불필요) | 내부 스킬 배포 단순화 | 외부 의존성 설치 절차 간소화 가능 |
|
|
1100
|
+
| `claude plugin init <name>` 스캐폴딩 추가 | 신규 플러그인 생성 도구 | mgr-creator 워크플로우 보완 |
|
|
1101
|
+
| `settings.json` `agent` 필드가 dispatched session에서 honored (`--agent` override) | 메인 스레드 에이전트 지정 가능 | R006 main-thread agent 참조 |
|
|
1102
|
+
| `EnterWorktree` 세션 중 Claude-managed worktree 간 전환 | 워크트리 격리 작업 유연성 | R006 worktree isolation 참조 |
|
|
1103
|
+
| `tool_decision` telemetry에 `tool_parameters` 포함 (`OTEL_LOG_TOOL_DETAILS=1`) | bash/MCP/skill 파라미터 추적 가능 | R012 monitoring + monitoring-setup 스킬 참조 |
|
|
1104
|
+
| Claude-managed worktree 종료 시 자동 unlock (`git worktree remove/prune` 가능) | 워크트리 정리 자동화 | R006 worktree 참조 |
|
|
1105
|
+
| 다수 버그 수정 (이미지 처리, sandbox 권한, `claude agents` 세션, `--resume`) | 안정성 향상 | 영향 없음 |
|
|
1106
|
+
|
|
1085
1107
|
## v2.1.156 (2026-05-29) — 호환성 점검
|
|
1086
1108
|
|
|
1087
1109
|
> Issue: #1245 — CC v2.1.156 tracking
|
package/templates/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.161.0",
|
|
3
3
|
"lastUpdated": "2026-05-20T00:00:00.000Z",
|
|
4
4
|
"omcustomMinClaudeCode": "2.1.121",
|
|
5
5
|
"omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"name": "skills",
|
|
21
21
|
"path": ".claude/skills",
|
|
22
22
|
"description": "Reusable skill modules (includes slash commands)",
|
|
23
|
-
"files":
|
|
23
|
+
"files": 116
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "guides",
|