파일을 잘못된 작업공간에 저장
공식 계정 글쓰기 파일을 iOS 개발 폴더에 저장했다. 사람이 다시 옮긴 뒤 저장 위치를 규칙으로 남겼다.
코드를 한 줄도 직접 쓰지 않았다는 사실보다 더 중요한 것이 있다.
아무것도 적히지 않은 CLAUDE.md가
실수와 반복과 불편을 먹으며 라우터가 되고, 제약이 되고, 능력의 묶음이 되고, 기억이 되었다.
설계도에서 태어난 시스템이 아니라 관계 속에서 자란 시스템이다.
앞선 사례의 주인공들은 Terraform, TDD, ML 파이프라인, 대규모 소프트웨어 개발 경험을 갖고 있었다. 이 장의 저자는 스스로를 그들과 다른 표본으로 제시한다. 수기 코딩 경험이 전혀 없는 상태에서 모든 제품의 첫 줄부터 AI 생성으로 시작했다는 것이다.
원문은 모든 제품을 AI가 생성했다고 서술한다. 이 사례의 의미는 비전문가도 자동으로 성공한다는 주장이 아니라, Harness 설계의 학습 경로가 반드시 전통적 코딩 경력 하나로만 연결되지는 않는다는 점에 있다.
원문은 이 사례가 의미 있는 이유를 Harness Engineering의 진입 장벽과 연결한다. 오랜 프로그래밍 경력이 없더라도 반복적인 AI 협업을 통해 행동 패턴을 관찰하고, 실패를 규칙과 제약과 모듈로 바꾸는 경험을 축적할 수 있다는 주장이다.
출발점은 방법론이 아니었다.
Claude Code가 프로젝트 루트의 CLAUDE.md를 자동으로 읽는다는 사실은 알고 있었지만,
무엇을 써야 할지 몰라 빈 파일로 두었다.
그 다음부터 AI가 실수하기 시작했다.
공식 계정 글쓰기 파일을 iOS 개발 폴더에 저장했다. 사람이 다시 옮긴 뒤 저장 위치를 규칙으로 남겼다.
굵게, 기울임, 구분선을 지나치게 많이 사용했다. 선호하지 않는 스타일을 한 줄의 규칙으로 추가했다.
저자가 선호하는 인용 표기와 다른 문장부호를 사용했다. 다시 한 줄의 규칙이 생겼다.
“한 번 거슬릴 때마다 한 줄을 추가한다.”
약 3개월 뒤 CLAUDE.md는 수십 줄로 늘었다.
파일 조직, 글쓰기 스타일, 이미지 처리, 앱 개발 규칙이 한데 섞이자
관련 없는 규칙이 서로 다른 작업을 방해하기 시작했다.
주제 선정 → 조사 → 작성 → 교정 → 이미지 → 게시의 전용 흐름과 스타일 규칙을 가진다.
자막 다운로드 → 내용 분석 → 스크립트 → 교정의 별도 흐름을 가진다.
프로젝트별 아키텍처 규칙과 개발 절차를 하위 CLAUDE.md가 담당한다.
CLAUDE.md는 무엇을 해야 하는지 알려줄 수 있지만
실제 실행을 보장하지는 못한다.
원문은 이 한계를 만난 뒤 Hooks와 Skills가 추가되는 과정을 설명한다.
무엇을 해야 하고 무엇을 선호하는지 알려준다. 그러나 “편집 전 lint를 실행하라”고 적어도 Agent가 가끔 듣지 않는 문제가 남는다.
핵심 작업 전후에 스크립트를 삽입한다. 파일 편집 전 lint, 코드 생성 후 type check처럼 통과하지 못하면 다음 단계로 넘어가지 못하게 한다.
이미지 생성·업로드·링크 삽입, Feishu 동기화, Xiaohongshu 편집, 영상 자막 다운로드와 분석처럼 반복해서 설명하던 절차를 하나의 호출 가능한 능력으로 만든다.
원문은 현재 100개가 넘는 Skills가 축적되었다고 서술한다. 중요한 점은 숫자가 아니라 모든 Skill이 구체적인 반복 불편에서 태어났다는 점이다. 처음부터 기능 목록을 설계한 것이 아니라, 같은 절차를 여러 번 설명하는 피로가 능력의 경계를 만들었다.
되돌아보면 성장 과정에는 반복되는 리듬이 있었다. AI의 실수에서 규칙이 생기고, 규칙이 많아지면 구조를 다시 나누며, 그 구조가 새로운 한계를 드러내면 다른 계층이 추가된다.
실패가 발생할 때 한 줄씩 추가.
관련 없는 컨텍스트를 분리.
말로 안 되는 부분을 강제.
반복 절차를 능력 단위로 봉합.
원문은 스스로에게 불편한 질문을 던진다. 왜 이런 판단을 할 수 있게 되었는가. 답은 타고난 시스템 설계 능력이나 방법론 책이 아니라 AI와 협업한 수천 시간 동안 반복해서 행동 패턴을 관찰한 경험이라고 한다.
코드 문법이 아니라 Agent의 행동을 읽는 법을 배웠다는 서술이다.
많은 결정이 직관으로 내려지기 때문이다. 원문은 직관을 신비한 능력으로 보지 않는다. 시행착오가 반복되고, 반복이 충분히 쌓이고, 그 시간이 압축되면 직관이 된다고 본다.
원문은 Martin Fowler가 제기한 “처음부터 사람이 loop 밖에 있다면 다음 세대 Harness 설계자는 어떻게 자라는가”라는 우려를 다시 다룬다. 코드 작성 경험이 줄어드는 것이 위험할 수 있다는 문제의식에는 동의하지만, 필요한 경험이 반드시 전통적인 코딩 경험과 같은 형태일 필요는 없다고 주장한다.
시간을 들여 프로그래밍 언어와 시스템을 직접 다루며 판단력을 쌓는다.
비슷한 시간 동안 Agent의 성향과 작업 흐름을 반복해서 다루며 판단력을 쌓는다.
원문의 요지는 경험을 없애는 지름길이 생겼다는 것이 아니다. 같은 시간을 다른 대상에 투자할 수 있게 되었다는 것이다. 트랙은 달라져도 충분한 반복과 실패가 필요하다는 조건은 남는다.
원문은 현재 Harness의 대략적인 구조를 공개한다. 한 파일에 모든 것을 집어넣는 대신, 라우터·하위 규칙·공유 규칙·Skills·Memory가 서로 다른 역할을 담당한다.
작업공간별로 완전한 흐름을 분리한다. 글쓰기는 주제→조사→작성→교정→이미지→게시, 영상은 자막→분석→스크립트→교정, iOS 개발은 자체 아키텍처 규칙을 가진다.
여러 작업공간에서 재사용하는 AI 느낌 제거용 교정 규칙, 이미지 처리 흐름, 정보 검색 규범 등을 별도 참조 디렉터리에 둔다.
조사, 작성, 이미지, 교정, Feishu 동기화, 영상 분석, PDF 생성까지 전 과정을 능력 패키지로 분리한다. 필요할 때만 로드하므로 평소에는 컨텍스트를 차지하지 않는다.
정체성, 현재 프로젝트, deadline, 모델 버전 메모 같은 장기 정보를 유지한다. 새 대화마다 핵심 기억을 자동으로 불러와 같은 설명을 반복하지 않게 한다.
마지막 조언은 복잡한 프레임워크가 아니다. 코딩 경험이 없거나 적다면 오히려 아무것도 쓰지 않은 지시 파일에서 시작하라고 한다. 그리고 실제로 거슬리는 첫 번째 실패를 기다린다.
처음부터 이상적인 규칙 세트를 상상해 채우지 않는다.
실제로 반복을 막을 가치가 있는 문제인지 확인한다.
두 번째 실패가 오면 다시 한 줄을 추가한다.
그 파일에는 자신의 상황·불편·업무 방식이 압축되어 있다.
원문은 필요한 것을 프로그래밍 경험보다 인내와 시간이라고 표현한다. AI의 서툼을 견디는 인내, 반복 속에서 “언제 무엇을 믿고 무엇을 강제해야 하는가”라는 감각을 축적하는 시간이다.
빈 파일에는 아무것도 없지만
그래서 무엇이 필요한지 아직 결정되어 있지 않다.
첫 번째 불편이 한 줄이 되고,
한 줄들이 서로 부딪히면 길이 갈라지고,
말로 부족한 곳에는 울타리가 생기고,
반복되는 일은 하나의 능력으로 묶인다.
시스템은 처음부터 큰 것이 아니었다.
관계가 오래되면서 구조가 생긴 것이다.
경험은 건너뛸 수 없다.
다만 무엇과 부딪히며 경험할 것인가는 달라질 수 있다.