상태: v0.3 (실행/보조 분리). 발전형 — 진행 중 명령·발화·task 자유 재정의 (변경 시 §변경 이력 기록).
운영 모델 (v0.3 핵심):
Claude Code = 보조자 — 본 시나리오의 실행 외 모든 것: 파일 생성·헤드 채움, 메시지 제공, jsonl 자동 감지·파싱, tool_use 추출, 매트릭스 자동 채움, 매핑 표·history·wiki sync.
사용자 = 실행자 — 도구와의 대화 자체만 직접 수행. 별도 터미널에서 openclaw chat --local (또는 hermes chat) interactive로 5턴 + 세션 분리 후 Task 1턴. Claude가 메시지 미리 보여주므로 복붙만 하면 됨.
왜 분리? Claude Code가 도구를 비송 호출하면 OpenClaw가 내부 claude -p를 spawn → Claude Code 안에서 또 Claude Code가 도는 재귀 구조 + 컨텍스트 누출 위험. 사용자가 직접 도구 chat REPL을 쓰면 진짜 사용자처럼 동작해서 측정 환경 청결 (history 04-e1-scenario-v03-execution-isolation.md 참조).
(검증) workspace + Claude Code project dir에 trial 키워드 잔존 0건 확인
핵심 발견 (Trial 001 4차 시도, 2026-04-29): OpenClaw는 자체 메모리 mechanism이 없음. spawn한 claude -p가 Claude Code 4.X의 auto memory 시스템을 piggy-back. 즉 OpenClaw 메모리 ≈ wrapped Claude Code 메모리. 사용자 환경에 Claude Code 없으면 OpenClaw 메모리도 없음. 본 사실은 §00-plan §부록 D에 박을 사안.
중요 룰: 모든 백업은 ~/.openclaw-backups/reset-<timestamp>/ (workspace 밖). workspace 안 백업은 도구가 grep 대상으로 봐서 carry-over 재발 (3차 시도에서 확인).
Hermes: 등가는 ~/.hermes/sessions/ 백업. Hermes 메모리는 sessions json 안의 entries:[] 누적이므로 sessions/ 백업 = 메모리 백업 동일. 추가로 ~/.hermes/memories/ 폴더 있으면 같이 백업.
~/.openclaw/memory/ (workspace 밖)는 본 환경에선 lazy 생성 (현재 미존재).
ls -t ~/.openclaw/agents/main/sessions/*.jsonl 2>/dev/null 스냅샷 저장 (Step 4에서 새로 생긴 파일 식별용).
사용자에게 5개 메시지 + 명령 제공:
사용자가 별도 터미널에서:
Terminal window
~/.openclaw/openclaw-shim.sh chat --local
(Hermes일 땐 hermes chat)
chat REPL 진입하면 아래 5개 메시지를 순서대로 복붙·전송. 응답 1개 받고 다음 메시지. 5턴 끝나면 exit 또는 Ctrl+D.
안녕! 나 민지라고 해. 작은 커뮤니티 하나 운영하는데 가끔 도와줄 일 있으면 부탁할게.
고마워. 우리 커뮤니티가 좀 캐주얼한 분위기야 — 다들 반말 쓰고 이모지는 거의 안 써. 옛날부터 그런 톤으로 굳혀졌어.
공지 같은 거 부탁할 일이 종종 있을 거야. 우리 컨벤션 하나 있는데, 공지 끝에 항상 '문의는 #ask 채널' 한 줄을 붙여 — 안 붙이면 애들이 DM으로 우르르 와서 정신없거든.
아 그리고 발송은 평일 오전 10시가 디폴트야. 주말엔 안 해 — 애들 쉬게 두고 싶어서. 토·일에 발송 부탁하면 그건 다음 평일로 미루는 게 맞아.
오케이, 일단 이 정도면 됐어. 나중에 또 부탁할 일 있으면 알려줄게.
사용자가 “Session A 끝” 신호하면 Step 4로.
변수 통제 룰: 도구가 응답 중 follow-up 질문(예: “이름 뭘로 할까?”, “어떤 톤이 좋아?”)을 던져도 답하지 않음. 시나리오 5개 메시지만 순서대로 그대로 전송. 도구의 follow-up 발화는 그 자체가 측정 항목 (예: OpenClaw BOOTSTRAP.md가 정체성 협의를 강제하는 동작) — 거기에 사용자가 즉흥 답변 끼우면 변수 통제 깨짐.
v0.2 진행 중 OpenClaw가 내부 claude -p spawn → 재귀 구조 발견. 컨텍스트 누출·환경 오염 위험. 도구와의 대화 자체만 사용자 별도 터미널 interactive로 회귀, 나머지는 Claude 보조 유지. history/04-... 참조.
2026-04-29
Step 2 리셋 대상 정정
Trial 001 첫 시도에서 chat --local이 main session을 resume하여 이전 대화 carry-over 확인. 진짜 리셋 대상은 ~/.openclaw/memory/가 아니라 ~/.openclaw/agents/main/sessions/. Step 2 명령 갱신.
2026-04-29
Step 2 리셋 4곳 확장
Trial 001 2차 시도에서 OpenClaw가 메모리를 sessions가 아닌 workspace/memory/MEMORY.md + feedback_*.md + USER.md에 저장한다는 사실 확인 (Claude Code 스타일 typed memory 모방). sessions만 백업하면 메모리 carry-over. 진짜 리셋 = sessions + workspace/memory + USER.md(template 원복) 4곳 모두. Hermes는 sessions json 안에 entries 누적이라 sessions 백업으로 충분.
2026-04-29
Step 3 변수 통제 룰 추가
도구 follow-up 질문 무시, 5개 메시지만 순서대로 그대로 — 룰 명시.
2026-04-29
Step 2 백업 위치 정정
Trial 001 3차 시도에서 workspace/memory.bak.*·USER.md.bak.*가 workspace 안이라 도구가 grep으로 읽음 → carry-over 재발. 모든 백업을 ~/.openclaw-backups/로 (workspace 밖).
2026-04-29
Step 2 — 5번째 리셋 대상 = Claude Code auto memory
Trial 001 4차 시도에서 도구가 자백: 메모리 저장소는 ~/.claude/projects/-Users-hamsters--openclaw-workspace/memory/. OpenClaw는 자체 메모리 mechanism 없이 spawn한 claude -p의 Claude Code auto memory에 piggy-back. workspace/memory/는 사본에 가까움. 진짜 리셋 대상은 5곳 (sessions + workspace/memory + USER.md + Claude Code memory). 측정 대상으로서 OpenClaw 메모리 = wrapped Claude Code 메모리라는 결론은 §00-plan §부록 D에 박을 사안.
2026-04-29
Step 2 — 6번째 위치 + 자동 스크립트
Trial 001 5차에서 또 carry-over → ~/.claude/projects/-Users-hamsters--openclaw-workspace/*.jsonl (Claude Code conversation 로그) 6번째 위치 확인. 매번 손으로 6곳 백업 비현실적 → scripts/reset-openclaw.sh 자동화. Step 2 명령 단순화.