oh-my-customcode 0.156.3 → 0.157.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 +5 -7
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/agents/arch-speckit-agent.md +1 -1
- package/templates/.claude/agents/sys-memory-keeper.md +3 -39
- package/templates/.claude/hooks/hooks.json +1 -1
- package/templates/.claude/hooks/scripts/plugin-cache-check.sh +1 -1
- package/templates/.claude/ontology/agents.yaml +4 -4
- package/templates/.claude/ontology/graphs/agent-skill.json +199 -68
- package/templates/.claude/ontology/graphs/full-graph.json +1240 -330
- package/templates/.claude/ontology/graphs/skill-rule.json +30 -13
- package/templates/.claude/ontology/rules.yaml +3 -3
- package/templates/.claude/ontology/skills.yaml +0 -31
- package/templates/.claude/profiles/data-eng.json +0 -1
- package/templates/.claude/profiles/harness-dev.json +0 -1
- package/templates/.claude/profiles/minimal.json +1 -2
- package/templates/.claude/profiles/web-app.json +1 -2
- package/templates/.claude/rules/SHOULD-memory-integration.md +9 -87
- package/templates/.claude/skills/agent-eval-framework/SKILL.md +2 -3
- package/templates/.claude/skills/crg-integration/SKILL.md +1 -10
- package/templates/.claude/skills/dev-review/SKILL.md +1 -2
- package/templates/.claude/skills/goal/SKILL.md +1 -1
- package/templates/.claude/skills/instinct-extractor/SKILL.md +0 -2
- package/templates/.claude/skills/intent-detection/patterns/agent-triggers.yaml +0 -19
- package/templates/.claude/skills/peer-messaging/SKILL.md +0 -2
- package/templates/.claude/skills/semble-integration/SKILL.md +0 -1
- package/templates/CLAUDE.md +3 -20
- package/templates/CLAUDE.md.en +2 -18
- package/templates/CLAUDE.md.ko +2 -18
- package/templates/guides/agent-design/ralph-loop-pattern.md +2 -2
- package/templates/guides/agent-eval/README.md +15 -35
- package/templates/guides/claude-code/15-version-compatibility.md +7 -7
- package/templates/guides/external-tools/ecc-absorption-decisions.md +2 -2
- package/templates/guides/harness-engineering/README.md +2 -2
- package/templates/guides/middleware-patterns/README.md +3 -5
- package/templates/guides/skill-promotion/instinct-extraction.md +1 -1
- package/templates/guides/token-efficiency/crg.md +7 -8
- package/templates/manifest.json +3 -3
- package/templates/.claude/skills/memory-management/SKILL.md +0 -240
- package/templates/.claude/skills/memory-recall/SKILL.md +0 -172
- package/templates/.claude/skills/memory-save/SKILL.md +0 -128
- package/templates/guides/agentmemory-migration/measure-step-zero.md +0 -120
- package/templates/guides/agentmemory-migration/phase-1-coexist.md +0 -261
|
@@ -9,7 +9,7 @@ LLM 에이전트는 세션 종료 시 누적된 맥락(tacit knowledge, 실패
|
|
|
9
9
|
|
|
10
10
|
## Claude Code 통합
|
|
11
11
|
|
|
12
|
-
- **
|
|
12
|
+
- **native auto-memory**: feedback memories + session archives를 영속 저장소로 (R011)
|
|
13
13
|
- **sys-memory-keeper 에이전트**: 세션 종료 시 Ralph Loop 요약 수행
|
|
14
14
|
- **R011 Memory Integration**: native auto-memory를 Ralph Loop의 primary writer로
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ LLM 에이전트는 세션 종료 시 누적된 맥락(tacit knowledge, 실패
|
|
|
18
18
|
1. **Bootstrap**: 세션 시작 시 MEMORY.md에서 이전 Ralph Loop 요약 로드
|
|
19
19
|
2. **Evolve**: 세션 진행 중 발견한 새 패턴/실패를 feedback memory에 기록
|
|
20
20
|
3. **Compact**: 세션 종료 시 sys-memory-keeper가 Ralph Loop 요약을 MEMORY.md 업데이트
|
|
21
|
-
4. **Persist**:
|
|
21
|
+
4. **Persist**: native auto-memory에 long-term save (cross-session 지속성은 R011 참조)
|
|
22
22
|
|
|
23
23
|
## Anti-patterns
|
|
24
24
|
|
|
@@ -536,9 +536,7 @@ LangChain Deep Agents 방법론은 에이전트 작업을 6개 capability로 분
|
|
|
536
536
|
| 도구/에이전트 | 역할 |
|
|
537
537
|
|---------------|------|
|
|
538
538
|
| 네이티브 auto-memory | agent frontmatter `memory:` 필드 — MEMORY.md |
|
|
539
|
-
| `
|
|
540
|
-
| `episodic-memory` MCP | 대화 자동 인덱싱 |
|
|
541
|
-
| `sys-memory-keeper` | 메모리 정리·업데이트 전담 에이전트 |
|
|
539
|
+
| `sys-memory-keeper` | 메모리 정리·업데이트 전담 에이전트 (MEMORY.md 관리) |
|
|
542
540
|
|
|
543
541
|
**conversation**
|
|
544
542
|
|
|
@@ -594,50 +592,32 @@ LangSmith 없이 oh-my-customcode 환경에서 에이전트 실행을 추적하
|
|
|
594
592
|
|
|
595
593
|
| LangChain 컴포넌트 | 역할 | oh-my-customcode 대안 |
|
|
596
594
|
|--------------------|----|----------------------|
|
|
597
|
-
| LangSmith trace | step별 실행 기록 수집 |
|
|
598
|
-
| Polly (record/replay) | 결정론적 재현을 위한 trace 녹화·재생 |
|
|
595
|
+
| LangSmith trace | step별 실행 기록 수집 | MEMORY.md `## Metrics` 섹션 per step 기록 |
|
|
596
|
+
| Polly (record/replay) | 결정론적 재현을 위한 trace 녹화·재생 | `.claude/outputs/evals/{task-id}/context.md` 환경 스냅샷 |
|
|
599
597
|
| Insights dashboard | 집계 메트릭 시각화 | statusline.sh (R012) + omcustom-improve-report |
|
|
600
598
|
| Annotation UI | ideal trajectory 편집 GUI | YAML 직접 편집 (.claude/outputs/evals/) |
|
|
601
599
|
| Run comparison | 에이전트 버전 간 성능 비교 | git diff 기반 수동 비교 |
|
|
602
600
|
|
|
603
|
-
### 5.2
|
|
601
|
+
### 5.2 MEMORY.md 기반 Step Trace
|
|
604
602
|
|
|
605
|
-
각 tool call 완료 후
|
|
603
|
+
각 tool call 완료 후 MEMORY.md `## Metrics` 섹션에 step record를 기록한다:
|
|
606
604
|
|
|
607
605
|
```
|
|
608
|
-
#
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
"type": "eval_step",
|
|
613
|
-
"task_id": "file_ops_001",
|
|
614
|
-
"step": 1,
|
|
615
|
-
"tool": "Read",
|
|
616
|
-
"elapsed_ms": 142
|
|
617
|
-
}
|
|
618
|
-
)
|
|
606
|
+
# MEMORY.md ## Metrics 섹션 예시
|
|
607
|
+
## Metrics
|
|
608
|
+
- [eval-step] task=file_ops_001 step=1 tool=Read target=src/main.go elapsed_ms=142 status=ok
|
|
609
|
+
- [eval-step] task=file_ops_001 step=2 tool=Edit target=src/main.go elapsed_ms=198 status=ok
|
|
619
610
|
```
|
|
620
611
|
|
|
621
|
-
세션
|
|
622
|
-
|
|
623
|
-
**한계**: claude-mem은 문자열 기반 저장이므로 구조화 쿼리가 제한적이다. 복잡한 집계는 저장된 record를 Read로 불러와 수동 파싱해야 한다.
|
|
612
|
+
세션 내 `MEMORY.md`를 Read하여 전체 trace 재구성 가능.
|
|
624
613
|
|
|
625
614
|
**우회법**: step record를 `.claude/outputs/evals/{task-id}/trace.jsonl`에 병행 기록하면 `Bash(jq)` 파이프라인으로 집계 가능하다.
|
|
626
615
|
|
|
627
|
-
### 5.3
|
|
628
|
-
|
|
629
|
-
`episodic-memory` MCP는 대화를 자동 인덱싱한다. 이전 eval 실행을 재현하거나 참조할 때 활용:
|
|
630
|
-
|
|
631
|
-
```
|
|
632
|
-
# 이전 eval 실행 검색
|
|
633
|
-
mcp__plugin_episodic-memory_episodic-memory__search(
|
|
634
|
-
query="agent-eval task file_ops_001"
|
|
635
|
-
)
|
|
636
|
-
```
|
|
616
|
+
### 5.3 환경 스냅샷 기반 재현
|
|
637
617
|
|
|
638
|
-
|
|
618
|
+
eval 실행 전 `.claude/outputs/evals/{task-id}/context.md`에 환경 스냅샷을 저장한다. 이전 eval 실행을 재현하거나 참조할 때 해당 파일을 컨텍스트로 주입한다.
|
|
639
619
|
|
|
640
|
-
|
|
620
|
+
**한계**: 결정론적 재현을 보장하지 않는다. 동일 결과를 얻으려면 실행 환경(파일 상태, 모델 버전)이 동일해야 한다.
|
|
641
621
|
|
|
642
622
|
### 5.4 statusline.sh + omcustom-improve-report 기반 대시보드
|
|
643
623
|
|
|
@@ -689,8 +669,8 @@ events:
|
|
|
689
669
|
|
|
690
670
|
| LangChain 컴포넌트 | 역할 | oh-my-customcode 대안 |
|
|
691
671
|
|--------------------|------|----------------------|
|
|
692
|
-
| LangSmith trace | step별 실행 기록 수집 |
|
|
693
|
-
| Polly (record/replay) | 결정론적 재현 |
|
|
672
|
+
| LangSmith trace | step별 실행 기록 수집 | MEMORY.md `## Metrics` 섹션 (5.2) |
|
|
673
|
+
| Polly (record/replay) | 결정론적 재현 | 환경 스냅샷 context.md (5.3) |
|
|
694
674
|
| Insights dashboard | 집계 메트릭 시각화 | statusline.sh + omcustom-improve-report (5.4) |
|
|
695
675
|
| **LangSmith OTEL export** | **표준 OTEL span 수집** | **trajectory-otel mode (5.5, #1035)** |
|
|
696
676
|
|
|
@@ -12,7 +12,7 @@ oh-my-customcode v0.107.0 targets Claude Code v2.1.116+. All v2.1.117-119 additi
|
|
|
12
12
|
**Key changes relevant to oh-my-customcode:**
|
|
13
13
|
|
|
14
14
|
- `CLAUDE_CODE_FORK_SUBAGENT=1` enables forked subagents on external builds — relevant for R018 Agent Teams expansion
|
|
15
|
-
- Main-thread agent `mcpServers` frontmatter loading via `--agent` — broadens MCP integration scope (affects sys-memory-keeper
|
|
15
|
+
- Main-thread agent `mcpServers` frontmatter loading via `--agent` — broadens MCP integration scope (affects sys-memory-keeper and native auto-memory users)
|
|
16
16
|
- `/model` persistence across restarts — reduces repeated model selection in long sessions
|
|
17
17
|
- `/resume` summarization of stale sessions — aligns with R013 ecomode context budget
|
|
18
18
|
- Concurrent MCP server startup — shorter session bootstrap
|
|
@@ -80,7 +80,7 @@ claude plugin details superpowers
|
|
|
80
80
|
|
|
81
81
|
`.mcp.json` 편집 후 CC 재시작 없이 `reconnect` 명령으로 변경사항을 반영합니다. 연결 실패 시 HTTP 상태 코드와 URL이 표시됩니다.
|
|
82
82
|
|
|
83
|
-
**oh-my-customcode 연관**: `
|
|
83
|
+
**oh-my-customcode 연관**: `ontology-rag` 등 MCP 서버 설정 변경 시 재시작 없이 적용 — 긴 세션 중단 없이 R011 메모리 통합을 재설정할 수 있습니다.
|
|
84
84
|
|
|
85
85
|
### Transcript View 네비게이션 단축키
|
|
86
86
|
|
|
@@ -197,7 +197,7 @@ export CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1
|
|
|
197
197
|
export MCP_TOOL_TIMEOUT=120000 # 120초 (밀리초 단위)
|
|
198
198
|
```
|
|
199
199
|
|
|
200
|
-
**oh-my-customcode 연관**: `
|
|
200
|
+
**oh-my-customcode 연관**: `ontology-rag` 등 원격 MCP 서버를 사용하는 R019 연동에서 타임아웃 문제가 있었다면 이 변수로 해결 가능. 네트워크 지연이 큰 환경에서 MCP 도구 호출 실패율 감소 기대.
|
|
201
201
|
|
|
202
202
|
### BG 세션 / Git Worktree Edit 차단 수정
|
|
203
203
|
|
|
@@ -670,7 +670,7 @@ Auto mode에서 user 또는 skill이 명시적으로 요청한 경우 `AskUserQu
|
|
|
670
670
|
|
|
671
671
|
1페이지 이후의 항목이 누락되던 버그가 수정되었습니다.
|
|
672
672
|
|
|
673
|
-
**oh-my-customcode 연관**: `ListMcpResourcesTool` 페이지네이션 안정성이 개선됩니다. `
|
|
673
|
+
**oh-my-customcode 연관**: `ListMcpResourcesTool` 페이지네이션 안정성이 개선됩니다. `ontology-rag` 등 R019 MCP 서버에서 리소스 목록이 많은 경우 전체 항목이 정상 조회됩니다. 호환, 개선.
|
|
674
674
|
|
|
675
675
|
### `CLAUDE_CODE_SUBAGENT_MODEL` 자식 프로세스 전파 수정
|
|
676
676
|
|
|
@@ -814,7 +814,7 @@ v2.1.147에서 도입된 regression으로, 일부 사용자에게서 Bash 도구
|
|
|
814
814
|
|
|
815
815
|
`/usage`가 limits 사용량 분석을 카테고리별로 표시합니다: skills, subagents, plugins, per-MCP-server 비용 세분화.
|
|
816
816
|
|
|
817
|
-
**oh-my-customcode 연관**: R013 ecomode 토큰 추적, R012 statusline, `token-efficiency-audit` 스킬과 연관됩니다. per-MCP 비용 가시성 덕분에 `
|
|
817
|
+
**oh-my-customcode 연관**: R013 ecomode 토큰 추적, R012 statusline, `token-efficiency-audit` 스킬과 연관됩니다. per-MCP 비용 가시성 덕분에 `ontology-rag` 등 R019 MCP 서버의 비용을 모니터링할 수 있습니다. 호환, 개선.
|
|
818
818
|
|
|
819
819
|
### `/diff` 키보드 스크롤 지원
|
|
820
820
|
|
|
@@ -985,7 +985,7 @@ dispatch 입력의 자동완성이 프로젝트 스킬뿐 아니라 네이티브
|
|
|
985
985
|
- stateful MCP 서버 reconnect-loop regression 수정 (v2.1.147 도입)
|
|
986
986
|
- 백그라운드 세션 다수 UX/안정성 수정
|
|
987
987
|
|
|
988
|
-
**oh-my-customcode 연관**: MCP 정책 수정은 R011
|
|
988
|
+
**oh-my-customcode 연관**: MCP 정책 수정은 R011 native auto-memory 및 R019 ontology-rag 서버 동작에 영향 가능합니다. `subagent_type: 'claude'` gitignored 경로 수정은 R010 subagent 델리게이션 시 `.claude/outputs/` 아티팩트 채널 사용 신뢰성을 높입니다.
|
|
989
989
|
|
|
990
990
|
### oh-my-customcode 연관 평가
|
|
991
991
|
|
|
@@ -1058,7 +1058,7 @@ Claude가 스스로 판단할 수 있는 상황에서는 multiple-choice prompt
|
|
|
1058
1058
|
- `rm -rf $HOME` trailing slash 경우 위험 경로 차단 수정 (R001 보안 강화)
|
|
1059
1059
|
- 배경 에이전트 worktree 격리 guard 수정 (공유 체크아웃 write 방지)
|
|
1060
1060
|
|
|
1061
|
-
**oh-my-customcode 연관**: `CLAUDE_CODE_SESSION_ID` 전달은 R011
|
|
1061
|
+
**oh-my-customcode 연관**: `CLAUDE_CODE_SESSION_ID` 전달은 R011 native auto-memory의 세션 스코핑에 활용 가능합니다. `rm -rf $HOME` trailing slash 수정은 R001 안전 규칙 강화입니다.
|
|
1062
1062
|
|
|
1063
1063
|
### oh-my-customcode 연관 평가
|
|
1064
1064
|
|
|
@@ -57,8 +57,8 @@ pre-flight 단계를 담당하는 이 패턴은 compilation pipeline을 완성
|
|
|
57
57
|
`skill-extractor`가 현재 세션의 행동 패턴을 skill로 승격한다면,
|
|
58
58
|
`instinct-extractor`는 누적 세션에서 반복 패턴을 자동 감지합니다.
|
|
59
59
|
두 도구는 trigger가 다릅니다 (단일 세션 vs 누적 히스토리).
|
|
60
|
-
R016 Continuous Improvement 루프를 강화하며, 내부 구조(agent-memory +
|
|
61
|
-
구현 가능하므로 외부 의존성이 없습니다.
|
|
60
|
+
R016 Continuous Improvement 루프를 강화하며, 내부 구조(agent-memory + 네이티브 자동 메모리)로
|
|
61
|
+
구현 가능하므로 외부 의존성이 없습니다. (원문에서 claude-mem 언급은 #1253에 의해 제거됨)
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
@@ -230,7 +230,7 @@ oh-my-customcode에서의 현황:
|
|
|
230
230
|
4. 메모리 저장: feedback_doom_loop_{날짜}.md → 세션 간 패턴 누적
|
|
231
231
|
```
|
|
232
232
|
|
|
233
|
-
크로스-세션 패턴 감지에는 `adaptive-harness --learn` +
|
|
233
|
+
크로스-세션 패턴 감지에는 `adaptive-harness --learn` + native auto-memory(R011)를 연동해 동일 실패 패턴이 반복 보고되는 에이전트를 자동 플래그합니다.
|
|
234
234
|
|
|
235
235
|
### Pre-completion Checklist
|
|
236
236
|
|
|
@@ -330,7 +330,7 @@ oh-my-customcode 내에서 이 주기는 다음으로 구현됩니다:
|
|
|
330
330
|
| 1 | **Filesystems** | 파일 읽기/쓰기/탐색 도구 | Read / Write / Edit / Glob / Grep | ✅ 완비 |
|
|
331
331
|
| 2 | **Bash/Code Execution** | 코드 실행 + 에이전트 격리 | Bash 도구 + agent isolation (`isolation: worktree\|sandbox`) | ✅ 완비 |
|
|
332
332
|
| 3 | **Sandboxes** | 실행 환경 격리 | R006 `isolation: worktree \| sandbox` + `sandboxFailIfUnavailable: true` | ✅ 완비 |
|
|
333
|
-
| 4 | **Memory & Search** | 세션 간 지식 유지 + 검색 |
|
|
333
|
+
| 4 | **Memory & Search** | 세션 간 지식 유지 + 검색 | native auto-memory + `.claude/agent-memory/` (R011) | ✅ 완비 |
|
|
334
334
|
| 5 | **Context Management** | 컨텍스트 예산 관리 + 압축 | R013 ecomode + auto-injection + Deep Insight Context Handoff Pattern | ✅ 완비 |
|
|
335
335
|
| 6 | **Long-Horizon Execution** | 장기 실행 + 복수 에이전트 조율 | Agent Teams + `worker-reviewer-pipeline` + `omcustom-loop` SubagentStop hook | ✅ 완비 |
|
|
336
336
|
|
|
@@ -22,7 +22,7 @@ LangChain이 정의한 6개의 lifecycle hook은 다음과 같습니다. 각 단
|
|
|
22
22
|
|
|
23
23
|
| LangChain Hook | 설명 | oh-my-customcode 대응 | 스킬/훅 예시 |
|
|
24
24
|
|---|---|---|---|
|
|
25
|
-
| `before_agent` | 에이전트 전체 실행 시작 전 | `SessionStart`, `UserPromptSubmit` hook |
|
|
25
|
+
| `before_agent` | 에이전트 전체 실행 시작 전 | `SessionStart`, `UserPromptSubmit` hook | MEMORY.md 자동 주입, omcustom-loop 초기화 |
|
|
26
26
|
| `before_model` | 모델 호출 직전 (매 추론 루프마다) | `PreToolUse(Agent)`, pre-generation-arch-check | pre-generation-arch-check 스킬 |
|
|
27
27
|
| `wrap_model_call` | 모델 호출 자체를 래핑 (실제 호출 제어) | Tier 4 permission approval (Bash/WebFetch) | permission hooks, bypassPermissions 게이트 |
|
|
28
28
|
| `wrap_tool_call` | 도구 호출을 래핑 (전후 모두 제어) | `PreToolUse(*) + PostToolUse(*)` | action-validator, task-outcome-recorder |
|
|
@@ -33,7 +33,7 @@ LangChain이 정의한 6개의 lifecycle hook은 다음과 같습니다. 각 단
|
|
|
33
33
|
|
|
34
34
|
**`before_agent` → SessionStart / UserPromptSubmit**
|
|
35
35
|
|
|
36
|
-
에이전트가 실행을 시작하기 전에 필요한 컨텍스트를 주입하거나 상태를 초기화합니다. oh-my-customcode에서는 `SessionStart` 훅이 이 역할을 담당합니다.
|
|
36
|
+
에이전트가 실행을 시작하기 전에 필요한 컨텍스트를 주입하거나 상태를 초기화합니다. oh-my-customcode에서는 `SessionStart` 훅이 이 역할을 담당합니다. native auto-memory의 MEMORY.md 자동 주입이 전형적인 `before_agent` 패턴입니다. R007의 에이전트 식별 헤더 출력도 이 단계의 산물입니다.
|
|
37
37
|
|
|
38
38
|
**`before_model` → PreToolUse(Agent) + pre-generation-arch-check**
|
|
39
39
|
|
|
@@ -69,7 +69,6 @@ oh-my-customcode에서는 이 패턴이 다음 방식으로 구현됩니다:
|
|
|
69
69
|
|
|
70
70
|
- **입력 마스킹**: `UserPromptSubmit` 훅에서 정규식 기반 PII 패턴 제거 (현재는 rule-level 권고)
|
|
71
71
|
- **메모리 위생**: `sys-memory-keeper`가 MEMORY.md에 민감 데이터를 저장하지 않도록 R011에서 명시
|
|
72
|
-
- **episodic-memory 분리**: 대화 인덱싱 전 민감 세션은 제외 처리
|
|
73
72
|
- **audit trail**: `PostToolUse` 훅이 도구 호출 기록을 남기되, 시크릿/토큰은 stdout/stderr에 노출하지 않음
|
|
74
73
|
|
|
75
74
|
신규 PII 마스킹 미들웨어를 작성한다면 `before_agent`(세션 전체 PII 정책 초기화)와 `wrap_tool_call`(개별 도구 호출의 인자 검사) 두 단계의 조합으로 설계하는 것을 권장합니다.
|
|
@@ -131,7 +130,6 @@ oh-my-customcode에서 이 패턴은 R004의 재시도 정책으로 명문화되
|
|
|
131
130
|
|---|---|---|
|
|
132
131
|
| `SessionStart` hook | 훅 이벤트 | 세션 초기화, 메모리 로드 |
|
|
133
132
|
| `UserPromptSubmit` hook | 훅 이벤트 | 사용자 입력 전처리, PII 검사 |
|
|
134
|
-
| claude-mem session-start | MCP 패턴 | 이전 세션 컨텍스트 복원 |
|
|
135
133
|
| R007 에이전트 식별 헤더 | 규칙 | 에이전트 신원 선언 |
|
|
136
134
|
| MEMORY.md 자동 주입 | 네이티브 기능 | 200줄 메모리 컨텍스트 주입 |
|
|
137
135
|
|
|
@@ -194,7 +192,7 @@ oh-my-customcode에서 이 패턴은 R004의 재시도 정책으로 명문화되
|
|
|
194
192
|
|
|
195
193
|
```
|
|
196
194
|
[before_agent]
|
|
197
|
-
SessionStart → MEMORY.md 로드 →
|
|
195
|
+
SessionStart → MEMORY.md 로드 → 이전 세션 컨텍스트 복원
|
|
198
196
|
↓
|
|
199
197
|
[before_model]
|
|
200
198
|
pre-generation-arch-check → 아키텍처 경계 검증
|
|
@@ -111,4 +111,4 @@ R016 Defect Response Matrix에서 **Skill Promotion** 조건:
|
|
|
111
111
|
- `.claude/rules/MUST-agent-design.md` — context fork cap (12/12)
|
|
112
112
|
- `guides/skill-bundle-design/README.md` — skill 설계 패턴
|
|
113
113
|
- Issue #1175 — instinct-extractor 흡수 결정 맥락
|
|
114
|
-
- Issue #1169
|
|
114
|
+
- (Issue #1169 AgentMemory 마이그레이션 항목은 #1253에 의해 제거됨)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# CRG (code-review-graph) 통합 가이드
|
|
2
2
|
|
|
3
3
|
> **출처**: [tirth8205/code-review-graph](https://github.com/tirth8205/code-review-graph)
|
|
4
|
-
> **관련 이슈**: #1171 (scout:integrate)
|
|
4
|
+
> **관련 이슈**: #1171 (scout:integrate)
|
|
5
5
|
> **wrapper 스킬**: `.claude/skills/crg-integration/SKILL.md`
|
|
6
6
|
|
|
7
7
|
## CRG 개요
|
|
@@ -186,14 +186,14 @@ context ≥ 60%에서 파일 직접 읽기 대신 CRG를 우선 사용한다:
|
|
|
186
186
|
|
|
187
187
|
## 기존 자산 마이그레이션 매핑
|
|
188
188
|
|
|
189
|
-
|
|
189
|
+
CRG는 코드베이스 탐색 패턴의 일부를 대체할 수 있다.
|
|
190
190
|
|
|
191
|
-
| 기존
|
|
192
|
-
|
|
193
|
-
|
|
|
194
|
-
|
|
|
191
|
+
| 기존 패턴 | CRG 대체 도구 |
|
|
192
|
+
|----------|--------------|
|
|
193
|
+
| 전체 파일 Read 후 함수 탐색 | `query_graph` |
|
|
194
|
+
| 변경 영향 범위 수동 파악 | `get_impact_radius` |
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
CRG를 우선 시도하고, 결과가 불충분하면 Grep/Glob 등 기존 도구를 사용한다.
|
|
197
197
|
|
|
198
198
|
## 트러블슈팅
|
|
199
199
|
|
|
@@ -212,7 +212,6 @@ Phase β에서 claude-mem 일부 기능을 CRG로 전환할 예정이다 (#1169)
|
|
|
212
212
|
- **wrapper 스킬**: `.claude/skills/crg-integration/SKILL.md`
|
|
213
213
|
- **관련 이슈**:
|
|
214
214
|
- #1171: scout:integrate CRG (이 가이드의 origin)
|
|
215
|
-
- #1169: Phase β AgentMemory 전환 시퀀싱
|
|
216
215
|
- **관련 규칙**:
|
|
217
216
|
- R001 (MUST-safety.md): auto-install 금지 정책
|
|
218
217
|
- R013 (SHOULD-ecomode.md): context budget 관리, ecomode 통합
|
package/templates/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.157.1",
|
|
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,13 +20,13 @@
|
|
|
20
20
|
"name": "skills",
|
|
21
21
|
"path": ".claude/skills",
|
|
22
22
|
"description": "Reusable skill modules (includes slash commands)",
|
|
23
|
-
"files":
|
|
23
|
+
"files": 118
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "guides",
|
|
27
27
|
"path": "guides",
|
|
28
28
|
"description": "Reference documentation",
|
|
29
|
-
"files":
|
|
29
|
+
"files": 57
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"name": "hooks",
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: memory-management
|
|
3
|
-
description: Memory persistence operations using claude-mem
|
|
4
|
-
scope: core
|
|
5
|
-
user-invocable: false
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Provide memory persistence operations using claude-mem for session context survival across compactions.
|
|
11
|
-
|
|
12
|
-
## Operations
|
|
13
|
-
|
|
14
|
-
### 1. Save Context
|
|
15
|
-
|
|
16
|
-
```yaml
|
|
17
|
-
operation: save
|
|
18
|
-
description: Store session context in claude-mem
|
|
19
|
-
steps:
|
|
20
|
-
1. Collect session data:
|
|
21
|
-
- Tasks completed
|
|
22
|
-
- Decisions made
|
|
23
|
-
- Open items
|
|
24
|
-
- Key code changes
|
|
25
|
-
2. Format document:
|
|
26
|
-
- Add project tag: "my-project"
|
|
27
|
-
- Add session ID: {date}-{uuid}
|
|
28
|
-
- Add relevant tags
|
|
29
|
-
3. Store in claude-mem:
|
|
30
|
-
- Use chroma_add_documents
|
|
31
|
-
- Include metadata
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### 2. Recall Context
|
|
35
|
-
|
|
36
|
-
```yaml
|
|
37
|
-
operation: recall
|
|
38
|
-
description: Search and retrieve relevant memories
|
|
39
|
-
steps:
|
|
40
|
-
1. Build query:
|
|
41
|
-
- Always prefix with "my-project"
|
|
42
|
-
- Add user-provided search terms
|
|
43
|
-
- Include date for temporal searches
|
|
44
|
-
2. Search claude-mem:
|
|
45
|
-
- Use chroma_query_documents
|
|
46
|
-
- Request top N results
|
|
47
|
-
3. Format results:
|
|
48
|
-
- Sort by relevance
|
|
49
|
-
- Present summary
|
|
50
|
-
- Provide access to full content
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### 3. Get Specific Memory
|
|
54
|
-
|
|
55
|
-
```yaml
|
|
56
|
-
operation: get
|
|
57
|
-
description: Retrieve specific memory by ID
|
|
58
|
-
steps:
|
|
59
|
-
1. Use chroma_get_documents with ID
|
|
60
|
-
2. Return full document content
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Query Patterns
|
|
64
|
-
|
|
65
|
-
### Semantic Search (Primary)
|
|
66
|
-
|
|
67
|
-
```python
|
|
68
|
-
# Always include project name
|
|
69
|
-
chroma_query_documents(["my-project {search_terms}"])
|
|
70
|
-
|
|
71
|
-
# Examples:
|
|
72
|
-
chroma_query_documents(["my-project authentication flow"])
|
|
73
|
-
chroma_query_documents(["my-project 2025-01-24 memory system"])
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Get by ID
|
|
77
|
-
|
|
78
|
-
```python
|
|
79
|
-
# When you have a specific document ID
|
|
80
|
-
chroma_get_documents(ids=["document_id"])
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Document Format
|
|
84
|
-
|
|
85
|
-
### Save Format
|
|
86
|
-
|
|
87
|
-
```yaml
|
|
88
|
-
content: |
|
|
89
|
-
## Session Summary
|
|
90
|
-
Date: {date}
|
|
91
|
-
Session: {session_id}
|
|
92
|
-
|
|
93
|
-
### Tasks Completed
|
|
94
|
-
- Task 1: Description
|
|
95
|
-
- Task 2: Description
|
|
96
|
-
|
|
97
|
-
### Decisions Made
|
|
98
|
-
- Decision 1: Rationale
|
|
99
|
-
- Decision 2: Rationale
|
|
100
|
-
|
|
101
|
-
### Open Items
|
|
102
|
-
- Item 1: Status
|
|
103
|
-
- Item 2: Status
|
|
104
|
-
|
|
105
|
-
### Notes
|
|
106
|
-
Additional context...
|
|
107
|
-
|
|
108
|
-
metadata:
|
|
109
|
-
project: my-project
|
|
110
|
-
session: {date}-{uuid}
|
|
111
|
-
tags: [session, task, decision, ...]
|
|
112
|
-
created_at: {timestamp}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Recall Response Format
|
|
116
|
-
|
|
117
|
-
```yaml
|
|
118
|
-
results:
|
|
119
|
-
- id: doc_1
|
|
120
|
-
score: 0.95
|
|
121
|
-
summary: "Authentication flow implementation"
|
|
122
|
-
date: 2025-01-20
|
|
123
|
-
tags: [authentication, oauth]
|
|
124
|
-
- id: doc_2
|
|
125
|
-
score: 0.87
|
|
126
|
-
summary: "JWT token decision"
|
|
127
|
-
date: 2025-01-18
|
|
128
|
-
tags: [authentication, decision]
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## Best Practices
|
|
132
|
-
|
|
133
|
-
### Query Tips
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
do:
|
|
137
|
-
- Always include "my-project" prefix
|
|
138
|
-
- Use semantic, intent-based queries
|
|
139
|
-
- Include dates for temporal searches
|
|
140
|
-
- Use multiple queries for better coverage
|
|
141
|
-
|
|
142
|
-
dont:
|
|
143
|
-
- Use complex where filters ($and, $or)
|
|
144
|
-
- Omit project name
|
|
145
|
-
- Use overly generic terms
|
|
146
|
-
- Expect exact string matching
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### Save Tips
|
|
150
|
-
|
|
151
|
-
```yaml
|
|
152
|
-
do:
|
|
153
|
-
- Include meaningful tags
|
|
154
|
-
- Write clear summaries
|
|
155
|
-
- Capture decisions with rationale
|
|
156
|
-
- Note open items for future reference
|
|
157
|
-
|
|
158
|
-
dont:
|
|
159
|
-
- Save trivial conversations
|
|
160
|
-
- Include sensitive data (API keys, etc.)
|
|
161
|
-
- Create duplicate entries
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
## Integration
|
|
165
|
-
|
|
166
|
-
### With sys-memory-keeper Agent
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
sys-memory-keeper agent uses this skill for:
|
|
170
|
-
- sys-memory-keeper:save command
|
|
171
|
-
- sys-memory-keeper:recall command
|
|
172
|
-
- PreCompact hook
|
|
173
|
-
- SessionStart hook
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### With Other Agents
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
Other agents can trigger memory operations via:
|
|
180
|
-
- Direct sys-memory-keeper:save/recall commands
|
|
181
|
-
- Delegating to sys-memory-keeper
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Error Handling
|
|
185
|
-
|
|
186
|
-
```yaml
|
|
187
|
-
save_errors:
|
|
188
|
-
- Connection failure: Retry 3 times, then log and continue
|
|
189
|
-
- Invalid format: Validate before save, report issues
|
|
190
|
-
- Storage full: Archive old memories, then retry
|
|
191
|
-
|
|
192
|
-
recall_errors:
|
|
193
|
-
- No results: Suggest alternative queries
|
|
194
|
-
- Connection failure: Return empty with warning
|
|
195
|
-
- Invalid query: Help user reformulate
|
|
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)
|