user-md: 사용자 프로필 파일 규율
AI가 당신을 이해하는 내용은 당신이 소유한 파일에 있어야 합니다. 특정 업체의 클라우드 계정에 갇혀 있지 않아야 합니다. 이 문서는 프로필 파일의 규율(에이전트에게 파일을 만들고, 유지하고, 사용하는 방법을 가르침)이며, 메모리 시스템(런타임 및 자동 파이프라인 포함)이 아닙니다. 세부 규칙은 필요 시
references/를 참조하세요: 유지 규칙curation.md, 계층 판단 기준 및 호스트 관계layering.md. 전체 파일의 크기 및 빈도 임계값은references/curation.md의 임계값 테이블에 한 번만 정의되며, 이 문서와 다른 파일은 참조만 하고 숫자를 복사하지 않습니다.
핵심 입장(네 가지)
- 파일은 당신이 소유합니다: 일반 텍스트 마크다운으로, 모든 편집기에서 읽고, 수정하고, 삭제할 수 있으며, 폴더를 따라 이동합니다(moves when you move).
- 이중 트랙 명확: 수동 영역은 사용자 전용이며, 에이전트는 제안만 할 수 있고 수정할 수 없습니다. 침전 영역은 에이전트 전용이며, 추가만 가능하고 각 항목은 흔적을 남겨야 합니다.
- 자동 수정 금지: 모든 수정은 흔적을 남깁니다(변경 기록 한 줄). 모든 내용은 사용자에게 표시되고, 편집 가능하며, 삭제 가능합니다.
- 사실 날조 금지: 침전 영역은 실제 관찰만 기록하며, 단일 관찰은 반드시 '검증 필요' 표시를 해야 합니다. 관찰되지 않은 것은 기록하지 않습니다.
1. 생성: 파일 패밀리와 다섯 섹션
파일 패밀리 세 가지
| 파일 | 내용 | 특성 |
|---|---|---|
USER.md | 기기와 프로젝트를 넘어 유효한 사용자 프로필 | 이식 가능; 세션마다 전체 주입, 작은 크기 유지 필요 (임계값은 references/curation.md 참조) |
USER.local.md | 기기를 바꾸면 무효화되는 내용: 환경/경로/도구 체인/자격 증명 포인터 | 기기 로컬; 반드시 gitignore |
user/*.md 오버플로우 보조 파일 | 침전 영역이 하한선 초과 시 이동된 세부 내용 | 주 파일에 인덱스 한 줄 남기고 필요 시 로드 |
USER.md 다섯 섹션 (최종 구조, 템플릿은 templates/USER.md 참조)
## Who I am— 신원 사실: 역할/배경/호칭. 사실과 선호도는 분리하여 저장 (두 유형의 정보를 분리하는 것은 여러 제품급 메모리 시스템의 공통된 방식).## How I work— 선호도와 스타일: 의사소통 방식/결과물 기준/검토 습관/기본 권한 경계.## Our relationship— 관계와 협업: 무엇을 물어야 하는지, 무엇을 직접 수행해야 하는지, 피드백은 어떻게 제공할지.## What I'm up to— 동적 인식 계층: 현재 목표와 진행 중인 작업 — 명시적으로 수정 가능한 가정, 증거에 따라 업데이트되고, 만료 시 삭제.## Learned by your agent— 에이전트 침전 영역 (규칙은 아래 이중 트랙 체계 참조).
명명 규율: 섹션 이름은 facts / preferences 체계를 따릅니다. persona라는 용어는 문서 전체에서 사용 금지 — UX 맥락에서는 가상 프로토타입 사용자를 의미하고, 에이전트 맥락에서는 에이전트 자체의 인격을 의미하여 이중 점유로 인해 반드시 모호함이 발생합니다.
시작하기: templates/에서 두 개의 템플릿을 작업 영역 루트로 복사하고, USER.local.md를 .gitignore에 추가한 후, 처음 네 섹션을 채우는 데 5분을 투자하세요. 비워 두어도 실행되지만, 에이전트는 매 세션마다 당신에 대한 인식이 전혀 없습니다.
2. 유지: 이중 트랙 체계와 침전 규율
이중 트랙 체계
-
수동 영역 (처음 네 섹션): 사용자가 직접 작성. 에이전트가 내용이 만료되었거나 모순을 발견하면 제안만 가능 (제안 텍스트와 이유 제시). 사용자가 직접 수정하거나 명시적으로 동의한 후에만 변경하며, 변경 후 파일 끝 변경 기록에 한 줄을 남깁니다.
-
침전 영역 (다섯 번째 섹션): 에이전트가 추가. 각 항목 형식:
- 【YYYY-MM-DD · 출처 이벤트】규칙 본문.【단일 관찰 검증 필요】날짜+출처는 각 항목의 출생 증명서입니다. 단일 관찰은 반드시 '검증 필요' 표시를 해야 합니다. 동일 유형의 관찰이 반복되어 승격 임계값에 도달하면 (임계값은
references/curation.md참조) 승격 제안을 시작할 수 있으며, 사용자 확인 후 수동 영역으로 이동합니다. 전체 형식과 절차는references/curation.md참조.
신호와 오탐
- 침전 가능 신호 세 가지: 수정 (사용자가 당신의 방식이나 이해를 수정함), 반복 선호도 (동일한 요구가 다른 상황에서 반복됨), 명시적 표현 (사용자가 "기억해", "앞으로는 항상 이렇게"라고 직접 말함).
- 즉시 추가 하드 규칙: 세 가지 신호 중 하나에 해당하고 오탐 필터를 통과하면 -> 즉시 침전 영역에 추가 — 배치하지 않고, 세션이 끝날 때까지 기억에 의존하여 나중에 작성하지 않습니다. 인식했는데 작성하지 않으면, 이 규율이 없는 것과 같습니다.
- 오탐 필터: 일회성 컨텍스트는 침전하지 않습니다 (현재 작업의 특수 요구 사항 != 장기 선호도). 매우 짧은 메시지는 기본적으로 무시됩니다 (필터 기준은
references/curation.md참조). 감정적인 순간의 표현은 신뢰도를 낮춥니다. 작업에 강하게 바인딩된 지시는 작업에 속하고 프로필에 속하지 않습니다.
통합과 크기
- 정기적인 통합 및 중복 제거 (주기는
references/curation.md임계값 테이블 참조): 동의어 항목 병합, 만료 항목 정리; 통합과 승격 이동은 침전 영역을 다시 작성할 수 있는 유일한 두 가지 합법적 시나리오이며, 모두 변경 기록에 흔적을 남겨야 합니다. - 주 파일이 크기 목표를 초과하거나 침전 영역이 하한선을 초과하면 (임계값은 모두
references/curation.md참조) -> 세부 내용을user/*.md보조 파일로 이동하고, 주 파일에 인덱스 행을 남깁니다.
3. 사용: 주입과 분기
세션마다 주입
주 파일을 작게 유지하는 이유가 여기에 있습니다: 모든 세션에 전체를 주입할 수 있을 만큼 작아야 합니다. 호스트에 따라 다음 중 하나를 선택하여 연결합니다 (각 호스트에 대한 자세한 내용은 README의 호환성 섹션 참조):
- 명령 파일 참조 행: 예: Claude Code에서 CLAUDE.md에
@USER.md행 추가; - 참조 메커니즘이 없는 호스트: 시스템 프롬프트나 규칙 파일에 "세션 시작 시 USER.md를 먼저 읽으세요"라는 문장 추가;
- session-start hook 연결 가능 (선택적 연결 방식 — 이 스킬은 자체 런타임을 제공하지 않으며, hook을 연결하지 않아도 규율은 유효). Claude Code 예시 구성:
{
"hooks": {
"SessionStart": [
{ "hooks": [ { "type": "command", "command": "cat USER.md" } ] }
]
}
}
(POSIX 예시; Windows 또는 다른 호스트는 동등한 명령으로 대체. 연결 여부와 방법은 사용자가 결정.)
분기 판단 기준 세 가지 (약한 모델 대비용, 자세한 내용은 references/layering.md 참조)
- 기기를 바꾸면 무효화 ->
USER.local.md; - 프로젝트/직무를 바꾸면 유효하지 않음 -> 해당 프로젝트의 로컬 파일;
- 나머지 ->
USER.md.
포인터 규율: 이미 권위 있는 출처가 있는 사실은 다시 복사하지 않고, 포인터 행만 남깁니다 ("특정 파일 참조") — 이중 출처 불일치 방지. 판례는 references/layering.md 참조.
개인정보 보호 경계선
- 이 파일 패밀리는 본질적으로 모두 PII입니다 — 가장 민감한 내용을 다루듯 취급하세요.
USER.local.md는 반드시 gitignore해야 하며, 절대 저장소에 커밋하지 마세요.USER.md를 공개 저장소에 푸시하기 전에 반드시 수동 검토하세요: 실명, 연락처, 고용주 내부 정보, 자격 증명 포인터를 항목별로 확인하세요.- 일반 텍스트 비밀번호 / API 키 / 토큰은 절대 이 파일 패밀리에 기록하지 마세요 — "자격 증명이 어디에 있고, 어떻게 호출하는지"에 대한 포인터만 작성하세요.
- 템플릿은 절대 실제 내용을 미리 채우지 않습니다 — 이 스킬이 제공하는 모든 템플릿은 플레이스홀더와 가상 예시로만 구성됩니다.
간단한 예시
- 사용자가 또 "답변은 결론부터 주세요"라고 말하면, 침전 영역의 동일 유형 '검증 필요' 항목이 승격 임계값에 도달한 경우 (
references/curation.md참조) -> 승격 제안 초안 작성 (한 문장으로 병합하여 How I work에 넣을 예정), 사용자 확인 후 이동. - 사용자가 "이 기기에서는 npm 대신 pnpm을 사용하세요"라고 말하면 -> 기기를 바꾸면 무효화 ->
USER.local.md에 기록. - 사용자가 특정 저장소에서 "이 프로젝트의 커밋 메시지는 스페인어로 작성하세요"라고 말하면 -> 프로젝트를 바꾸면 유효하지 않음 -> 해당 프로젝트의 로컬 파일에 기록하고,
USER.md에는 기록하지 않음. - 사용자가 늦은 밤에 "짜증 나, 긴 답변은 보지 마"라고 불평하면 -> 감정적인 순간 -> 단일 관찰로 침전하고 신뢰도를 낮추며, 수동 영역을 직접 수정하지 않고, 확실한 규칙으로 간주하지 않음.
- 사용자가 수동 영역에 "X 프로젝트를 하고 있습니다"라고 썼지만 석 달 동안 언급하지 않음 -> 에이전트는 제안으로
What I'm up to섹션을 업데이트하고 이유를 첨부하며, 사용자가 동의하기 전까지 한 글자도 수정하지 않음.
버전 및 업데이트 자가 점검
- 현재 버전: 1.0.0 (
plugin.json과 일치). - 저장소:
https://github.com/LucioLiu/user-md - 자가 점검: 플러그인으로 설치된 경우, 호스트 업데이트 메커니즘이 버전 번호를 따라 업데이트합니다. 수동 복제/템플릿 복사본의 경우, 이 파일과 저장소 main 브랜치를 diff하여 뒤쳐졌는지 확인하세요. 당신의
USER.md파일 패밀리는 스킬 업데이트의 영향을 받지 않습니다 — 그것은 당신의 데이터이지, 스킬의 일부가 아닙니다.