project archaeology

536커밋 만에 백업 도구 cc-sync가
스스로 도는 시스템이 됐다

처음 문제는 단순했습니다. Claude Code(터미널에서 쓰는 AI 코딩 도구)의 설정을 잃어버리지 않게 백업해 두자는 것이었습니다. 그래서 만든 작은 도구가 cc-sync입니다. 2025.10.22부터 2026.03.28까지 5개월 동안, 이 도구는 536번의 코드 저장(커밋)과 5번의 큰 단계를 거쳤습니다. 그 끝에서 cc-sync는 사람이 거의 손대지 않아도 AI가 알아서 작업을 처리하는 자동화 시스템이 되어 있었습니다. 남은 깨달음은 하나였습니다. 사람 말로 적어 둔 규칙은 무시당하고, 규칙을 어기는 순간 자동으로 끼어들어 막는 검사 스크립트인 훅(hook)만이 100% 강제한다는 것입니다.

536
Total Commits
5
Months
57
Agents
23
Skills
Commits per Month
4
Oct
24
Nov
25
Dec
23
Jan
51
Feb
409
Mar
The Big Picture
Phase 1
Settings Backup
Phase 2
Agent Ecosystem
Phase 3
Architecture Refine
Phase 4
HARD Enforcement
Phase 5
Full Automation
Key Insight
"Natural language instructions get ignored. Hooks enforce 100%."
— The inflection point between Phase 4 and Phase 5
5 Phases of Evolution
Phase 1 2025.10 ~ 11 early
The Backup Tool
~/.claude/는 Claude Code의 설정이 모두 담긴 폴더입니다. 이 폴더를 통째로 git(변경 이력을 저장해 두는 버전 관리 도구)에 백업하는 단순한 도구로 출발했습니다. 스크립트 파일 두 개가 전부였습니다. apply.sh는 저장해 둔 설정을 내 컴퓨터로 내려받고, sync.sh는 바뀐 설정을 다시 저장소로 올립니다. 이렇게 양쪽을 늘 똑같이 맞췄습니다. 이 시기에 외부에서 가져온 개발 방법론 하나를 실험했다가 곧 지웠습니다. 이 도구의 첫 실험이자 첫 삭제였습니다. 그 방법론은 기획·설계·개발 역할을 여러 AI 에이전트에게 나눠 맡기는 애자일 방법론입니다. 정식 이름은 Breakthrough Method of Agile AI-driven Development, 머리글자를 딴 약칭은 BMAD.
apply.sh / sync.sh /cc-apply, /cc-sync BMAD method (deleted) 28 commits
Phase 2 2025.11 mid ~ 12
Agent Explosion
이 시기의 목표는 오직 하나, '에이전트를 더 많이 만들자'였습니다. 에이전트란 특정 작업을 전담하는 AI 일꾼입니다. 그 수가 22개에서 35개로 한꺼번에 늘었습니다. 여러 에이전트에게 일을 나눠 주고 지휘하는 관리자 격 에이전트(Manager-Orchestrator)도 이때 처음 나왔습니다. 피그마(Figma, 화면 디자인 도구)의 시안을 코드로 바꿔 주는 에이전트도 붙었습니다. 외부 도구인 TaskManager(할 일 목록을 관리해 주는 도구)와 Context7(최신 라이브러리 문서를 찾아 주는 도구)도 연동했습니다. 작업이 끝나면 텔레그램 메신저로 알려 주는 기능도 붙었습니다. 저장할 때 남기는 메모(커밋 메시지)에 '에이전트 몇 개, 스킬 몇 개'라고 개수를 세어 적었습니다. 스킬은 자주 쓰는 작업 절차를 묶어 둔 기능입니다. 품질보다 양을 늘리는 데 매달리던 때였습니다.
Manager-Orchestrator Figma Designer Telegram Notification Context7 + TaskManager 22 → 35 agents 49 commits
Phase 3 2026.01 ~ 02 mid
Architecture Refinement
이제부터는 늘리기를 멈추고 정리를 시작했습니다. 양을 불리던 단계에서 구조를 다듬는 단계로 넘어간 것입니다. 그동안 남이 만든 외부 도구(Context7, TaskManager)에 기대던 부분을, Claude Code에 기본으로 들어 있는 작업 관리 기능(Tasks API)과 대화 내용을 기억해 두는 도구(claude-mem)로 바꿨습니다. 관리자 에이전트(Manager-Orchestrator)의 내부 구조도 크게 손봤습니다. 겉으로 드러나는 동작은 그대로 둔 채 속만 다시 짜는 작업(리팩토링)이었습니다. 웹 화면이 제대로 뜨는지 자동으로 확인하는 브라우저 도구도 세 번이나 갈아탔습니다. Playwright에서 superpowers-chrome으로, 다시 agent-browser로 바꿨습니다. 정리하는 김에 접은 실험도 하나 있습니다. 외부에서 만든 Claude Code 확장 플러그인을 실험 삼아 들여와 실제로 적용까지 해 봤다가, 결국 다시 뺐습니다. 그 플러그인의 이름은 OMC(oh-my-claudecode).
External deps removed Built-in Tasks API OMC (oh-my-claudecode) experiment → delete Browser tool: 3x change Auto orchestrator selection 74 commits
Phase 4 2026.02 mid ~ 03 early
HARD Enforcement
CLAUDE.md(Claude Code가 작업할 때 지킬 규칙을 적어 두는 지침 문서)에 사람 말로 적어 둔 규칙을 AI가 자주 무시했습니다. 이것이 이 시기의 가장 큰 깨달음이었습니다. 그래서 방식을 바꿨습니다. 규칙을 어기려는 순간 자동으로 끼어들어 그 행동을 막아 버리는 검사 스크립트, 곧 훅(hook)을 대량으로 심었습니다. 또 큰 작업을 여러 팀원 에이전트로 나눠 진행하는 지휘 체계(team-orchestrator)가 새로 생겼습니다. 앞서 만든 관리자(manager)와 함께, 작업 규모에 따라 골라 쓰는 두 갈래 체제가 됐습니다. 부탁하듯 말로 적어 둔 무른 규칙(soft)에서 기계가 강제로 막는 단단한 규칙(hard)으로 넘어간, 결정적 전환점이었습니다. 아래 표와 단계 이름에 대문자로 적힌 두 낱말이 바로 이 무른 규칙과 단단한 규칙입니다. 이때 심은 훅 가운데 네 가지만 예로 들겠습니다. 첫째, 품질 검사(QA)를 통과하지 못하면 코드 업로드(push)를 막습니다. 둘째, 브라우저에 데이터를 남기는 금지된 저장 방식(localStorage)을 쓰면 그 자리에서 차단합니다. 셋째, 비밀 정보가 담긴 환경 설정 파일을 올리려 해도 차단합니다. 넷째, 프로젝트마다 미리 정해 둔 금지 규칙을 어겨도 잡아냅니다. 이 네 훅의 이름은 첫째부터 차례로 qa-gate-before-push · no-localstorage · no-env-commit · scaffold-violation-check.
team-orchestrator qa-gate-before-push.sh no-localstorage.sh scaffold-violation-check.sh SOFT vs HARD analysis ~100 commits
Phase 5 2026.03 mid ~ present
Full Automation
이제 시스템은 사람 손을 거의 타지 않고 스스로 돌아갑니다. 시키지 않아도 30분마다 설정을 자동으로 저장하고 맞춥니다. 그 덕에 3월 한 달에만 저장 기록이 409번 찍혔습니다. 텔레그램 메신저에서 답장만 보내면 Claude Code에 명령이 전달되는 원격 조종 기능(Telegram Remote Control)도 붙였습니다. 지난 대화를 기억해 두는 도구(memory-bank)를 직접 만들었습니다. 그전까지 쓰던 남의 기억 도구(claude-mem)는 걷어냈습니다. 결과물이 제대로 됐는지 확인하는 품질 검사(QA)와 자잘한 판단은, 저 대신 처리해 주는 대리 에이전트(user-proxy)가 자동으로 맡습니다. 실수를 분석해 프로젝트별 규칙 묶음(스캐폴드)을 스스로 보강하는 장치(self-improve)까지 더해졌습니다. 시스템이 알아서 자신을 다듬는 셈입니다. 이렇게 스스로 개선을 반복하는 단계를 '루피 시대(Loopy Era)'라고 부릅니다.
Auto-sync every 30m Telegram Remote Control (RC) memory-bank (self-built) user-proxy agent Loopy Era self-improve SubagentStop/TaskCompleted hooks 409 commits in March
Lesson Learned
Start with the simplest thing that works.
Let friction tell you what to automate next.
Repository
cc-sync-template
Claude Code 설정을 백업하고 그대로 되살리는 틀. 에이전트, 자동 검사 장치(훅), 작업 묶음(스킬)까지 함께 저장합니다.
template
memory-bank
대화가 새로 시작돼도 이전 내용을 기억하게 해 주는 메모리 도구. 검색까지 되는 가벼운 데이터베이스(SQLite·sqlite-vec) 위에 만든 플러그인입니다.
plugin