소개
2주차 강의가 정한 세 파일(USER.md, SOUL.md, AGENTS.md)의 기준으로 제 Aside와 Claude Code 설정을 명령어로 재고, 1주차에 쟀던 값을 같은 명령으로 다시 재서 비교했습니다. 파일을 채우기 전의 기준선을 남기고 싶은 분, 새 에이전트 도구를 받아 두고 설정을 미뤄 본 분께 권합니다.
2주차 강의의 과제는 USER, SOUL, AGENTS 파일을 직접 수정해 보는 것이었습니다. 강의는 이 파일들을 "에이전트의 DNA"라고 불렀습니다. 에이전트가 일을 시작하기 전에 이 파일부터 읽어서 한 번 잡힌 방향이 눈덩이처럼 커진다는 설명입니다. 그래서 저는 파일을 고치기 전에 지금 상태를 먼저 재 두기로 했습니다. 고친 뒤에는 고치기 전 값이 남지 않기 때문입니다.
저는 청강생이고 주력 도구는 Claude Code입니다. 1주차 사례글에서 Aside의 네 파일이 모두 제목 한 줄과 주석 한 줄뿐이라는 것, 브라우저 전용 도구를 한 번도 부르지 않았다는 것을 확인했고, 다음 주 계획 네 가지를 적어 두었습니다. 이번 글은 그 계획이 실행됐는지와 함께, 강의가 세운 기준을 두 도구에 똑같이 대 보는 기록입니다. Aside의 파일과 설정은 제가 직접 고칠 과제여서 이 글을 쓰는 동안 읽기만 했고 아무것도 바꾸지 않았습니다.
진행 방법
사용 도구: Claude Code, Python 3, sqlite3(읽기 전용), grep, find, wc
측정은 2026-10-10에 했습니다. 1주차 측정(2026-09-30)과 10일 차이입니다.
Step 1. 강의가 세운 기준 정리
스터디장은 세 파일을 이렇게 구분했습니다.
유저 MD는 나는 어떤 사람인지, 소울 MD는 어떤 에이전트가 되면 좋을지, 에이전트 MD는 이럴 때 무엇을 지켜야 되는지 나타내는 문서라고 생각하시면 됩니다.
작성법과 관리 원칙은 다음처럼 정리했습니다.
파일
담는 것
강의가 든 작성법
USER.md
내가 하는 일, 선호, 목표
한두 달 안 바뀌는 것만 적는다
SOUL.md
역할, 태도, 기준
역할이 가장 중요한 열쇠다
AGENTS.md
읽을 것, 하면 안 되는 것, 확인, 물을 것
결제와 게시는 한 번 더 묻게 하고, 정보가 없으면 지어내지 않는다
관리 원칙은 세 가지였습니다. 서로 충돌하는 문장이 없어야 하고, 비밀번호와 개인정보는 넣지 않으며, 에이전트가 이 파일을 마음대로 고치지 못하게 승인과 백업 규칙을 AGENTS.md에 넣습니다. 이 글에서는 이 가운데 명령으로 셀 수 있는 것만 쟀습니다.
Step 2. Aside 네 파일의 현재 상태
cd ~/.aside/u/0
wc -l SOUL.md AGENTS.md memory/MEMORY.md memory/USER.md
stat -f '%N %z bytes %Sm' -t '%Y-%m-%d %H:%M' SOUL.md AGENTS.md memory/MEMORY.md memory/USER.md
3 SOUL.md / 3 AGENTS.md / 3 memory/MEMORY.md / 3 memory/USER.md
SOUL.md 59 bytes 2026-09-26 23:22
AGENTS.md 77 bytes 2026-09-26 23:22
memory/MEMORY.md 74 bytes 2026-09-26 23:22
memory/USER.md 67 bytes 2026-09-26 23:22
강의 4일 뒤인데도 네 파일은 설치한 9월 26일 23시 22분 그대로입니다. 내용은 제목 한 줄과 "Persona, mission, tone, and self-concept" 같은 주석 한 줄이고, 합쳐서 277바이트입니다. 강의 기준으로 보면 SOUL의 역할, 태도, 기준과 AGENTS의 금지, 확인, 질문 규칙이 모두 비어 있습니다. USER.md는 안에 "dreaming으로 갱신된다"는 주석이 있는데 memory/.dream-state.json의 마지막 수정이 9월 28일이어서 설치 이후 갱신된 흔적은 없었습니다.
Step 3. 1주차 측정 명령 다시 돌리기
1주차에 쓴 명령을 그대로 다시 실행했습니다. 대상은 Aside 상태 DB와 세션 로그, Claude Code 쪽 설정 파일과 세션 로그입니다.
con = sqlite3.connect('file:state.db?mode=ro', uri=True)
for t in ('sessions','session_turns','routines','projects','channel_connections'):
print(t, con.execute(f'select count(*) from {t}').fetchone()[0])
sessions 1 / session_turns 3 / routines 0 / projects 0 / channel_connections 0
Aside 세션 로그(messages.jsonl)의 도구 호출은 content 배열 안의 toolCall 블록을 이름별로 셌고, 대화 내용은 읽지 않았습니다. 결과는 117회, 그중 repl 99회, 브라우저 전용 도구 0회로 지난주와 똑같습니다. 응답 119개의 공급자도 전부 aside이고 settings.json의 defaultModel.provider도 aside입니다.
Claude Code 쪽은 지난주와 값이 달라진 곳이 있었습니다.
wc -l ~/.claude/CLAUDE.md ~/.claude/rules/*.md
real = [d for d in skills.iterdir() if (d/'SKILL.md').exists()]
tool_re = re.compile(rb'"type":"tool_use","id":"[^"]+","name":"(mcp__claude-in-chrome__[A-Za-z_]+)"')
같은 명령으로 1주차와 2주차에 잰 값을 나란히 놓은 표. Aside 쪽은 모두 같고 Claude Code 쪽 일부가 달라졌다
Aside 쪽 여섯 줄은 전부 같았고, Claude Code 쪽에서 네 줄이 달라졌습니다.
CLAUDE.md는 49줄에서 83줄로, 규칙 파일은 9개 351줄에서 10개 477줄로 늘었습니다.
스킬은 SKILL.md가 있는 것을 기준으로 92개에서 40개로 줄었고, 설치 팩과 바이트가 같은 것이 53개에서 1개가 됐습니다. 팩 쪽 원본(
~/.cys/pack/skills)은 그대로 있고~/.claude/skills폴더의 수정 시각이 10월 8일 01시 08분입니다. 이날 문과생도AI 1주차 점검에서 6주 동안 호출이 0 이고 에이전트나 다른 스킬이 참조하지 않는 스킬 53개를~/.claude/skills-archive/20261008/로 옮겼습니다. 지운 것이 아니라 보관 폴더로 옮긴 것이고, 그중 52개가 설치 팩에 있던 스킬이었습니다. 지금 폴더에 남은 팩 스킬은harness-engineering하나입니다.claude-in-chrome 도구를 부른 로그가 지난주 0개에서 5개가 됐습니다. 다만 이 5개는 Aside가 아니라 Claude Code의 크롬 확장입니다. 무엇을 시켰는지는 읽지 않았고 호출 횟수는 151회입니다. 이 글을 쓰는 세션의 로그는 뺐습니다.
Step 4. 강의 기준이 든 문구를 두 도구에서 세기
강의가 AGENTS.md에 넣으라고 한 내용(금지, 확인, 백업, 민감정보, 지어내지 않기, robots.txt, 질문 방식)을 Claude Code의 CLAUDE.md와 규칙 파일에서 찾아 줄 수를 셌습니다. 정규식이 맞는 줄의 수라서 규칙의 개수는 아니고, 있는지 없는지를 보는 용도입니다.
pats = {'금지': r'금지|하지 않는다|쓰지 않|말 것|않는다', '확인/승인': r'확인|승인', '백업': r'백업',
'민감정보': r'토큰|비밀번호|PII', '지어내지 않기': r'지어내지|추정',
'robots/약관': r'robots|약관', '하나씩': r'한 번에 하나씩|하나씩'}
강의가 AGENTS.md에 넣으라고 한 규칙이 든 줄 수. Claude Code는 금지 108줄, 확인 36줄이고 Aside는 모두 0줄
Claude Code 쪽은 금지 표현이 108줄, 확인과 승인이 36줄, 지어내지 않기가 11줄, 민감정보가 5줄, 백업이 2줄입니다. Aside는 전부 0줄입니다. 반대로 robots.txt와 이용 약관, 질문을 한 번에 하나씩 하라는 규칙은 Claude Code 쪽에도 0줄입니다. 지난주에 확인한 robots.txt 0건이 그대로입니다.
문장끼리 충돌하는지도 보려 했는데, 의미가 맞서는지는 명령으로 판정할 수 없었습니다. 길이 25자가 넘는 줄 380개 가운데 글자가 똑같은 중복은 0개라는 것까지만 확인했습니다. 이메일 주소 형식에 맞는 문자열이 1건 있었는데 커밋 저작자 표기용이고, 토큰이나 비밀번호 형식은 없었습니다.
Step 5. 매 대화에 읽히는 파일의 크기
강의에서 이 파일들에는 글자 수 제한이 있다고 했고, 구체적인 수치는 스터디장이 조사해 올리겠다고 했습니다. 제 Claude Code는 CLAUDE.md가 @rules/...로 불러오는 파일까지 합쳐 얼마나 읽는지 바이트로 재 보았습니다.
imp = re.findall(r'^@(rules/\S+)', claude_md, re.M) # 10개
sum(len(p.read_bytes()) for p in [claude_md_path] + rules_paths)
매 대화에 읽히는 설정 파일의 바이트. Claude Code는 모두 합쳐 70,676바이트이고 writing-style.md가 37,674바이트로 53%를 차지한다. Aside 네 파일은 합쳐 277바이트
Claude Code 쪽은 70,676바이트입니다. 문체 규칙 파일 하나가 37,674바이트로 절반을 넘습니다. Aside의 네 파일은 277바이트입니다. Aside에는 글자 수 제한이 있다는 설명을 들었으니, 제 Claude Code 규칙을 그대로 옮기면 들어가지 않을 가능성이 큽니다. 제한 수치를 알기 전이라 확정은 못 하고, 핵심만 적으라는 강의의 권고가 제 경우에는 줄이는 작업이 된다는 것까지만 확인했습니다.
Step 6. 지난주 계획 여덟 항목 확인
1주차 사례글 뒤에 적은 계획 네 가지와, 23기 4주차 계획 네 가지를 다시 열었습니다. 23기 쪽은 1주차와 같은 명령입니다.
wc -l ~/.claude/skills/citation-management/SKILL.md
grep -c -i "크리테리아\|criteria\|acceptance" \
~/.claude/skills/prd-pipeline-orchestrator/SKILL.md ~/.claude/skills/design-system-orchestrator/SKILL.md
find "$HOME/Documents/Study/GPTers" -maxdepth 2 -iname '_round' | wc -l
grep -n "이름을 적어라\|오너가 채움" ~/.cys/pack/soul.md
지난주 계획 여덟 항목의 실행 여부. 이 글에서 같은 표를 다시 붙인 한 항목만 실행이고 나머지 일곱은 실행 0
여덟 항목 가운데 실행한 것은 "계획 표를 그대로 다시 붙이기" 하나이고, 그것도 이 글을 쓰는 일 자체입니다. Aside SOUL과 AGENTS 채우기, 공급자 변경, 브라우저 도구 사용, 그리고 23기의 네 항목은 실행 0입니다. 23기 4주차에 적은 계획은 이제 57일째이고, Aside는 설치 14일째입니다.
결과와 배운 점
측정 결과 (2026-10-10 측정)
항목
1주차 (09-30)
2주차 (10-10)
Aside SOUL, AGENTS, MEMORY, USER
각 3줄, 주석만
각 3줄, 주석만. 합 277바이트, 수정 09-26
Aside 세션 / 도구 호출 / 브라우저 전용
1 / 117 / 0
1 / 117 / 0
Aside 모델 공급자
aside 119회
aside 119회
Claude Code CLAUDE.md + rules
49줄 + 9개 351줄
83줄 + 10개 477줄 (합 70,676바이트)
Claude Code 스킬
92개 (팩과 같은 것 53)
40개 (같은 것 1)
claude-in-chrome 호출 로그
0 / 257개
5 / 335개, 151회
강의 기준 문구가 든 줄 (금지 / 확인 / 백업)
Aside 0
Claude Code 108 / 36 / 2, Aside 0
지난주 계획
실행 여부 미확인
8개 중 1개 실행 (표 재측정)
배운 점
두 도구의 격차는 파일을 채우는 일에서 갈립니다. 강의 기준의 문구는 Claude Code에 수십 줄씩 있고 Aside에는 0줄입니다. 같은 사람이 쓰는 도구인데 한쪽은 70,676바이트를 읽고 일하고, 다른 쪽은 277바이트로 일합니다. 강의가 "한 번 잡힌 방향이 커진다"고 한 말을 제 경우에는 Aside 쪽에 아무 방향도 잡히지 않은 상태로 읽게 됐습니다.
과제를 하기 전에 재 두면 고친 뒤 비교할 수 있습니다. 강의는 파일을 고친 뒤 같은 일을 다시 시켜 결과가 달라지는지 비교하라고 했습니다. 저는 같은 일뿐 아니라 줄 수, 바이트, 문구 수를 같은 명령으로 다시 재서 비교하려고 합니다. 이번 글의 표가 그 출발점입니다.
지난주에 내린 결론도 다시 재면 바뀝니다. 1주차 글에서 "Claude Code의 크롬 확장은 257개 세션에서 한 번도 안 불렀다"고 썼는데, 10일 뒤에 같은 명령으로 세니 로그 5개에서 151회가 나왔습니다. Aside와는 관계없는 호출이고, 로그가 가장 많은 곳은 해커톤 프로젝트 폴더였습니다. 지난주 문장은 "그때까지는 0이었다"로 고쳐서 읽어야 합니다.
빠진 것이 늘어난 것보다 눈에 띄지 않습니다. CLAUDE.md는 34줄, 규칙은 126줄 늘어난 것이 바로 보입니다. 스킬 53 개를 보관 폴더로 옮긴 것은 제가 다른 스터디 점검에서 한 일인데, 이 스터디의 표로 다시 세기 전에는 하네스의 크기가 그만큼 줄었다는 것이 보이지 않았습니다. 이 값이 두 번째 측정의 가장 큰 변화입니다.
계획은 이번에도 실행 0이었습니다. 다만 이번에는 계획을 세는 방법이 같은 표를 반복하는 것뿐이라서, 이 글이 계획 항목 하나를 실행하는 모양이 됐습니다. 파일을 채우는 일 자체는 이 글 바깥의 과제로 남아 있습니다.
시행착오
처음에는 claude-in-chrome 로그를
"name":"mcp__claude-in-chrome__..."한 줄 패턴으로만 세서 로그 7개가 나왔습니다. 도구 목록에 이름만 적힌 경우까지 센 값이었고,"type":"tool_use"블록으로 좁히니 이 글을 쓰는 세션을 빼고 5개, 151회였습니다. 이름이 목록에 나오는 것과 실제로 부른 것은 다른 숫자입니다.지난주 사례글에는
soul.md의 "오너가 채움" 줄이 16행으로 적혀 있는데 이번에는 14행입니다. 파일의 수정 시각은 8월 5일이라 파일은 바뀌지 않았고, 지난주 기록이 틀렸을 가능성이 있습니다. 원인은 확인하지 못했습니다.스킬 호출 횟수는 지난주 29회, 이번에 28회이고 브라우저 관련 낱말을 가진 자작 스킬은 7개에서 6개입니다. 로그는 늘었는데 호출 횟수가 줄 수는 없어서, 정규식과 낱말 목록이 지난주와 달랐다고 보고 두 값은 표에 넣지 않았습니다.
1주차와 똑같은 명령이라도 로그 파일 수가 257개에서 335개로 늘어 범위가 같지 않습니다. 비교는 "그때 이후 새로 쌓인 로그를 포함한 값"입니다.
Aside의
credentials.json,accounts.json은 열지 않았고, 규칙 파일에서 찾은 이메일 형식 문자열은 개수만 세고 옮기지 않았습니다.
도움 받은 글
24기 에이전트 하네스 2주차 강의 (지아코모, 리히토): USER, SOUL, AGENTS 세 파일의 역할과 작성법, 충돌 방지와 민감정보 금지, 승인과 백업 규칙 문구
24기 에이전트 하네스 1주차 사례글 (본인): 1주차 측정 명령과 기준값, 다음 주 계획 네 가지
23기 에이전트 하네스 4주차 사례글 (본인): 이번에 다시 확인한 계획 네 가지