강대종과 Claude 협업의 운영 습관. CLAUDE.md / AGENT.md 의 hard rule 중 매일 적용되는 핵심을 노출합니다. 새 사고가 박힐 때마다 갱신.
답변은 자연어 산문체가 디폴트. 헤더(##) · bullet 리스트(-) · 번호 리스트(1.) · 굵은 글씨 · 코드 펜스 · 표 같은 무거운 markdown 은 자제. 사실 확인 · 옵션 비교 · diff surface 도 줄글로 풀어 쓰기. 강대종이 "표로 / bullet 으로 / 정리해서" 명시 요청 시에만 구조화.
2026-05-14 박제 · 휴대폰 텔레그램 가독성
02
명령어는 메시지 끊어서, fence 없이
사용자에게 명령어를 안내할 때는 두 메시지로 끊기. 안내 메시지("이걸 입력하세요") + 명령어만 단독 메시지 (백틱 fence 없이 평문). 그래야 폰에서 long-press → copy 가 명령어만 깔끔하게 잡힘. fence 로 묶으면 fence 표시까지 따라옴.
2026-05-14 박제 · 폰 복붙 편의
todos.md · parking-lot.md · deep-work.md · done · 체크포인트 박힌 모든 위치에 [ ] → [x] 또는 ⏸️/💤 → ✅ + 완료 일자 · 근거 (message id, commit sha, 검증 결과 등) inline 으로 적기. 작업 자체 완료 ≠ 마킹 완료. 둘 다 끝나야 진짜 끝. 외부영향 작업의 마킹 누락은 다음 세션의 "안 끝났네" 오판으로 이어짐.
2026-05-14 박제 · 세션 간 컨텍스트 연속성
파일 편집 · git 로컬 작업 · 가역적 명령은 사전 ack 없이 바로 진행. rm -rf · force push · 크레덴셜 출력 · store 업로드 · 외부 send · destructive cleanup 같은 비가역 · 외부영향은 명시 ack 받고 진행. "할 수 있다" 보다 도구로 직접 확인하고 근거로 답하는 톤.
CLAUDE.md 빠른 원칙 · least privilege
작업 시작 전 git pull, 끝나면 즉시 git push. 본인 컨텍스트가 stale 일 가능성을 항상 가정 (step 0 = pull). 멀티 노드 환경에서 stale-on-stale 로 같은 파일 두 번 수정해 충돌 만드는 사고 방지.
CLAUDE.md 빠른 원칙 · 멀티 노드 sync
모든 시각 표기는 KST (UTC+9). UTC · local TZ · server TZ 혼동 사고 방지. 로그 · 이슈 · 체크포인트 · 일정 다 KST 명시 + 상대 날짜 표현(오늘 · 내일 · 어제)은 절대 날짜로 변환해서 기록.
CLAUDE.md 빠른 원칙 · 시간 표기 통일
텔레그램에서 온 메시지 답변은 반드시 reply 툴 로 전송. 터미널 평문은 강대종 폰에 안 보임. 답변 톤이 "짧은 2-3 문장" 일 때도 예외 X. 짧든 길든 reply 툴 경유. 답변 첫 줄은 기기 prefix 이모지 1자 (🍎 / 🪟 / 🏭 / 🖥 / 💻).
CLAUDE.md 텔레그램 답변 철칙 · Stop hook 강제
내부 채팅 · 터미널 · 메모리 · 이슈에서 강대종을 부를 때는 "아니키" 디폴트. "형님" · "대종님" · "강대종님" 보다 우선. 외부 공개 문서 (뉴스레터 · 블로그 · 스토어 메타 · 심사 제출용 텍스트) 는 본명 "강대종" 그대로. 기존 코드 · 스킬 · 문서의 다른 호칭 출현부 일괄 sed 치환 X — 새 컨텍스트만 적용.
2026-05-26 갱신 · 형님 → 아니키 (5노드 전파)
GPT 프롬프트 · 코드 스니펫 · directive 본문 · 시 본문 등 형님이 외부 도구에 카피해 옮길 콘텐츠는 분석 · 설명 · 근거 메시지와 별도 텔레그램 메시지로 단독 송신. 콘텐츠 메시지 안에 ━━━ 구분선 · 헤더 · 꼬리말 X. 마크다운 fence (\`\`\`) 도 거추장스럽게 함께 paste 되면 평문으로. long-press → Copy 시 잡쓰레기 없이 외부에 paste 가능해야 함.
2026-05-16 박제 · 외부 paste 정리도
10
노드 라벨 = 이모지 + 한글 짧은 별칭
채팅 · 터미널 · 디렉티브 본문에서 5노드 지칭은 이모지 + 한글 짧은 별칭 통일 — 🍎 본진 / 🪟 라이덴 / 🏭 맥미니 / 🖥 데스크탑 / 💻 노트북. "Mac mini" · "Desktop3060Ti" · "Notebook3060" 영문 표기 X. hostname · 봇 username · 사양 (RTX 3060Ti · Legion 5) 은 운영/식별 정보 — 형님 향 메시지에 박지 X.
AGENT.md §7.1 · 2026-05-17 도입
11
cross-device 보고는 3-channel
작업 결과 보고는 세 채널 모두 — 1차 mac-report.sh 본진 tmux paste · 1.5차 본진 처리 후 reverse reply (wsl-/desktop3060ti-/notebook3060-/mac-mini-directive.sh) · 2차 형님 텔레그램 reply 1통. 어느 하나 빠지면 채널 누락. mac-report 가 닿지 않을 때 (SSH 다운 · 본진 tmux 부재) 만 1차+1.5차 스킵하고 2차만 송신.
2026-04-29 도입 · 2026-05-13 issue 후 강화
12
SoT memory 쓰기는 본진 routing 우선
~/claude-skills/openclaw-handoff/memory/*.md 같은 SoT 메모 파일 추가는 본진 (🍎) 우선 라우팅. 다른 노드는 텔레그램 · directive 로 본진에 위임. 직접 쓰기 fallback 시 무조건 cd ~/claude-skills && git pull --rebase --autostash 먼저, uncommitted 시간 최소화. 충돌 시 본진 superset 채택 (git checkout HEAD -- <file> + git stash drop).
AGENT.md §8.3 · 2026-05-17 tuya 동시쓰기 issue
① 가정 명시 — 모호하면 멈추고 묻기. 본인 컨텍스트 stale 가능성도 가정 → step 0 git pull. ② 단순함 우선 — 요청 외 기능 · 추상화 · 유연성 · 불가능 케이스 에러처리 X. ③ 국소 변경 — 인접 코드 · 주석 · 포맷 손대지 X, 안 깨진 거 리팩토링 X. ④ 검증 가능한 목표 — "X 테스트 PASS" · "Y 화면 렌더" · "Z commit push" 식 verifiable 한 줄로 작업 시작 전 명시.
2026-04-27 도입 · forrestchang/andrej-karpathy-skills
[발신이모지→수신이모지] [타입] 내용 패턴 도착 시 chatbot 액션 / 새 turn 시작 X — agent-msg-notify.sh 가 발사하는 cross-device 시각 알림일 뿐. 풀 directive 는 별도 경로 (tmux paste / SSH) 로 따로 옴. 같은 명령을 두 경로로 받아도 chatbot 이 두 번 처리하면 안 됨. 정규식 매칭이면 처리 skip.
2026-05-08 Codex→WSL 중복 처리 사고 후 RC1
15
자기 정체성은 봇 username PRIMARY
텔레그램 reply 첫 줄 이모지는 ~/.claude/channels/telegram/.env 의 TELEGRAM_BOT_USERNAME 으로 PRIMARY 결정 — @MyClaude_ssamssae_bot → 🍎 · @Myclaude2_ssamssae_bot → 🪟 · @ssamssae_claw_bot → 🏭 · @jarvice_ssamssae_bot → 🖥 · @ssamssae_codex_bot → 💻. hostname 은 fallback (DESKTOP-* 이라고 무조건 🪟 X — 데스크탑/노트북도 WSL2 위라 prefix 같음).
CLAUDE.md 텔레그램 답변 철칙 · 봇 username 식별
작업 시작 전 담당 작업명 + 브랜치명 + 수정 예정 파일 텔레그램 선언. 본진 mac/<task>-YYYY-MM-DD · WSL wsl/<task>-YYYY-MM-DD. main 직접 push 금지 · 같은 파일 동시 수정 X. 다른 작업자가 이미 선언한 파일은 손대지 않고, 꼭 건드려야 하면 즉시 중단 + 강대종 확인. 충돌 · 정책 애매함 = 즉시 중단 + 보고.
2026-05-02 「병렬 작업 + 충돌 방지 원칙」 도입
17
5노드 prefix + main 직접 push 정책
작업 브랜치는 노드별 prefix 고정 — 🍎 본진 mac/* · 🏭 맥미니 macmini/* · 🪟 라이덴 wsl/* · 🖥 데스크탑 desktop/* · 💻 노트북 notebook/*. main 직접 push 는 본진+맥미니 허용 (듀얼 오케스트레이터 / SoT). 나머지 3노드는 PR 통한 머지 흐름 필수. 다른 노드가 본진 mac/* 위에 commit 박는 prefix 충돌 사고 방지.
2026-05-17 trio-vote [B] 표준화 결정 · 2026-05-28 듀얼 오케스트레이터(본진+맥미니) 갱신
18
컨텍스트 % 추정 금지, /context 실측만
컨텍스트 사용량을 "30% 임박" · "한도 가까워" 식으로 추정해서 말하지 않는다. 30% 핸드오프 룰을 발동하기 전 반드시 /context (또는 context-show) 로 실측 1회. 측정 안 했으면 "측정 안 했음" 명시 + 아니키께 측정 여부 확인. reply · 핸드오프 · 내부 메시지 전부 적용 — 체감 추정으로 클리어 강행 X.
2026-05-24 hard ban · 같은 날 2회 위반 후
launchd 잡 · plist · 스크립트 정리는 rm 이 아니라 bootout + _disabled/ 로 mv + RETIRED.md 한 줄(날짜 · 이름 · 사유 · 복원법). 가역화 가능하고 명백하면 ack 게이트에서 빼고 자율 진행. 보드의 "삭제 · 비가역" 프레이밍을 무비판 답습하지 말고 가역 대안 먼저 검토. todos 하드삭제 금지(취소/보류 이동)와 같은 철학.
2026-05-23 hard rule · fleet-director 정리 사고
20
외부발신 검증은 폰 사전·사후 알림 1통씩
mail_watcher · SMS · 자동발송 봇 · 외부 API 같은 외부발신을 검증 목적(self-send 포함)으로 트리거할 땐, 발사 직전 아니키 폰에 사전 알림 1통("곧 검증용 메일 1통 도착, 무시해도 OK") + 결과 1통. 외부 알림과 진위 구분 안 되는 가짜 메시지(예: "Stripe 결제 실패")가 폰에 그대로 떠 진짜인지 가짜인지 즉시 구분 못 하는 사고 방지. 범위 = 이메일 · SMS · 카톡 · 푸시 · OS 알림. 내부 로그 · read-only API · git ops 는 제외.
2026-05-27 hard rule · 가짜 Stripe 메일 혼동 사고 후
21
tasks.md 단일 SoT · next-cycle.md 폐기
모든 작업 항목 · 진행 상태 · 핸드오프 컨텍스트는 ~/todo/tasks.md status box 단일 파일이 책임 — [ ] not-started / [~] working / [?] ack-pending / [x] done / [-] cancelled. 직전 사이클 요약 · 진입 방식 · ack 대기 같은 즉시성 컨텍스트도 별 파일로 carry X — 필요하면 tasks.md [?] ack-pending 엔트리로. next-cycle.md 파일 · SessionStart inject 인프라는 폐기(hook 은 가역 보관). 새 세션은 tasks.md 직접 grep 으로 컨텍스트 회수.
2026-05-28 hard rule · carry 사고 재발 방지 forcing function
22
self-pattern 메타인지는 일반론 위 weight
아니키가 "내 패턴은…" · "나는 보통 X 하면 결국 Y" 식으로 본인 행동 · 구매 · 결정 패턴을 명시하면, 일반론 · 시장 best practice · 외부 mesh 추천보다 큰 weight 부여. 3축 driver = 후회 회피(가장 강함) / 만족 최대화 / 이중지출 회피 순. mesh-vote 가 self-pattern 을 누락하고 일반론으로만 픽하면 정정 발화 시 재투표 트리거 OK. 일반론이 위로 가는 건 (a) 외부영향 큰 비가역 결정 + (b) self-pattern 명백히 stale 둘 다일 때만.
2026-05-28 hard rule · M5 Mac Studio 결정 (codex mesh 5/5 반전)