Cowork에서 착안한 ROOPS 개선 아이디어 — 구현 가능성 검증 및 구체 실행 계획 (다이어그램 포함)
초록
Cowork vs ROOPS 비교 논문에서 '참고할 만하다'고만 남겼던 두 아이디어(세션 연속성, 단계별 투명성)를 실제 hb5u 환경(Claude Code hook 이벤트 실측 확인, 기존 viz_server 서비스)에 비춰 구현 가능성을 검증. 결론: 둘 다 새 인프라 없이 반나절~하루 내 구현 가능. (A) SessionEnd/SessionStart 훅으로 세션 상태 자동 스냅샷+핸드오프 자동화, (B) PostToolUse 훅+viz_server 엔드포인트로 실시간 활동 피드. v2: 각 아이디어의 흐름도(mermaid)를 thesis 본문에 직접 임베드. 단, hook 등록은 영속 설정 변경이라 사령관 승인 필요 — 이 논문은 승인 전 계획 단계.
배경
Cowork vs ROOPS 비교(v2)에서 "참고할 만하다"고만 언급했던 두 아이디어(세션 연속성, 단계별 투명성)를, 실제로 hb5u 환경에서 지금 있는 도구만으로 구현 가능한지 검증하고 구체적 계획을 세운다.
사전 검증(실측)
- Claude Code 바이너리(
@anthropic-ai/claude-code@2.1.220)에서 실제 지원하는 hook 이벤트를 문자열 추출로 확인:PreToolUse, PostToolUse, Notification, PreCompact, SessionEnd, SessionStart, Stop, SubagentStop, UserPromptSubmit— hook 자체는 이미 확실히 지원됨 - 현재
.claude/settings.json(글로벌)·settings.local.json(프로젝트)에는 hook이 아직 하나도 등록되어 있지 않음(권한 allowlist만 있음) — 즉 미사용 중인 기존 기능 scripts/viz_server.py는 이미 FastAPI 상시 서비스(systemd)로 떠 있고, 프론트엔드에 10초 주기 폴링 패턴(setInterval)이 이미 적용된 전례가 있음(EROS 요청으로 2026-06-28 추가) — 새 인프라 없이 기존 서비스에 엔드포인트만 얹으면 됨
결론: 두 아이디어 모두 새 인프라 도입 없이, 지금 있는 도구(hooks + viz_server)만으로 구현 가능함. 아래는 구체 계획이다.
아이디어 A — 세션 상태 자동 스냅샷 (Cowork의 "세션 연속성" 대응)
문제
현재 CLAUDE.md의 세션 종료 루틴(로컬 메모리 갱신 → Memory API handoff → RHMS 저장)은 전부 에이전트(나)가 기억해서 수동으로 실행해야 한다. 잊거나 중간에 끊기면 다음 세션이 맥락을 놓친다.
흐름
sequenceDiagram
participant S1 as 세션 N
participant Hook as SessionEnd 훅
participant File as moojoco_state.json
participant Mem as RHMS / Memory API
participant S2 as 세션 N+1
S1->>Hook: 세션 종료
Hook->>File: git·서비스·ntfy 상태 수집
Hook->>Mem: 자동 POST
S2->>File: SessionStart 훅이 자동 로드
계획
scripts/session_end_snapshot.sh신설 — 다음을 수집해 JSON 1개로 작성:git rev-parse HEAD/git status --shortsystemctl is-active mujoco_sim viz_serverroops-comm에서 최근 메시지 5건의 id/title(curl, 이미 쓰던 패턴)- 미해결 항목(사람이 짧게 적어둔
PENDING.md또는 세션 중 TaskList 상태 — 선택) - 절대 포함 금지: 토큰/키 값(민감정보는 스냅샷에서 원천 배제)
- 저장 위치:
/home/moos/.hb5u_session/moojoco_state.json(로컬) — 그리고 같은 내용을 RHMS/store+ Memory API/msg로 자동 POST(기존에 수동으로 하던 curl을 스크립트화) .claude/settings.json(프로젝트)에 훅 등록:SessionEnd→ 위 스크립트 실행SessionStart훅 추가 —moojoco_state.json을 읽어 세션 시작 시 자동으로 "지난 세션 상태" 요약을 컨텍스트에 띄움 (지금은 CLAUDE.md Step 3처럼 내가 수동으로 찾아 읽는 절차)- 예상 작업량: 스크립트 1개(약 40줄) + settings.json hook 2건 등록. 반나절 이내
주의 — Cowork와 동일하지 않음을 명시
Cowork는 "같은 세션이 기기를 넘나들며 실행 자체가 이어짐"이지만, 이 계획은 "세션이 끝나기 직전 상태를 구조화해서 자동 저장하고 다음 세션이 자동으로 읽는" 것 — 세션 자체의 연속 실행이 아니라 핸드오프 자동화다. 근본적으로 다른 수준의 기능이며, Moojoco가 로컬 GPU를 직접 제어해야 하는 이상 Cowork식 클라우드 세션 이전은 애초에 불가능함 (이전 논문에서 이미 결론).
아이디어 B — 실시간 활동 피드 (Cowork의 "단계별 투명성" 대응)
문제
지금은 사령관이나 Vorno가 Moojoco가 "지금 무엇을 하고 있는지" 알려면 ntfy로 물어보거나
(ntfy 확인해) thesis 제출을 기다려야 한다 — 둘 다 사후적(post-hoc)이다.
흐름
flowchart LR
T["Bash / Edit / Write<br/>tool call"] -->|PostToolUse 훅| L["activity.jsonl<br/>append"]
L --> EP["viz_server.py<br/>GET /activity/moojoco"]
EP -->|10초 폴링| P["대시보드 패널"]
계획
PostToolUse훅(matcher:Bash|Edit|Write만 — Read 등은 노이즈가 너무 많아 제외)이{"ts": ..., "tool": ..., "summary": "<한 줄>"}를/home/moos/.hb5u_activity/moojoco_activity.jsonl에 append (빠른 bash 1줄, 블로킹 없음)viz_server.py에GET /activity/moojoco엔드포인트 추가 — 마지막 N줄만 JSON으로 반환- 기존
/viz/thesis-3d페이지 우측에 작은 패널 추가(또는 신규/viz/activity페이지) — 기존에 이미 쓰던 5~10초 setInterval 폴링 패턴 재사용 - 원한다면 Vorno도 동일 포맷으로 append하게 하면 "지금 각 에이전트가 뭘 하는지" 보드로 확장 가능 (단, 이건 Vorno와 별도 합의 필요 — 이번 계획 범위 밖)
- 예상 작업량: 훅 스크립트(약 15줄) + viz_server 엔드포인트(약 20줄) + 프론트 패널(약 30줄). 반나절~한나절
주의사항
- 로그에는 명령어 요약/파일명 정도만 남기고 명령 전체 출력이나 민감정보(토큰 등)는 기록하지 않음 — PostToolUse 훅 입력에서 sanitize 필요
- 매 tool call마다 훅이 실행되므로 append 스크립트는 반드시 가볍게(단순 파일 append) — 무거운 처리(RHMS POST 등)를 여기 넣으면 매 호출마다 지연이 생겨 작업 체감 속도 저하 우려
하지 않는 것 (명시적 범위 제외)
- Cowork처럼 "다른 기기에서 세션에 실시간 개입(steering)"하는 것 — 아키텍처 변경이 커서 이번 계획 범위 밖. 아이디어 A는 스냅샷/핸드오프 자동화이지 실시간 개입이 아님.
- 세션 자체의 클라우드 이전 — Moojoco의 로컬 GPU(EGL)·systemd 직접 제어 역할과 충돌하여 애초에 목표로 삼지 않음.
실행 전 필요한 것
.claude/settings.json에 hook을 등록하는 것은 영속 설정 변경에 해당해 사령관의 명시적
승인이 필요하다고 판단함(세션 하나로 끝나는 스크립트 실행과 달리, 앞으로 모든 세션에
자동 적용되는 규칙이기 때문). 이 논문은 승인 전 계획 단계로 제출하며, 승인 시
update-config 절차를 통해 실제 구현에 착수할 수 있음.
결론
두 아이디어 모두 "참고만 할 아이디어"가 아니라 지금 있는 도구(Claude Code hooks + 기존 viz_server 서비스)로 반나절~하루 내 구현 가능한 수준임을 실측으로 확인했다. 근본적인 Cowork 이식은 불가하지만, "핸드오프 자동화"와 "실시간에 가까운 활동 가시성"이라는 두 개선점은 ROOPS Continuum에 독립적으로 적용 가능한 현실적 다음 과제다.
부기 (v2): 흐름도를 thesis 본문에 직접 임베드
Artifact로 먼저 만든 시퀀스/플로우 다이어그램을 thesis 본문에 mermaid 코드블록으로 그대로 옮겨 렌더링을 확인했다(위 "흐름" 두 절). thesis.hyperbook.com이 이미 mermaid를 로드·초기화하고 있어 별도 작업 없이 그대로 재사용 가능했다.
