From autonomy-obsession
대화 기록에서 '나'의 생성 규칙을 추출하는 스킬. 1,196개 세션을 Python으로 정제 → Haiku 병렬 분석 → Opus 종합하여 10개 레이어별 판단 규칙집을 만든다. /extract-me, '나 추출', '규칙 추출', '판단 기준 분석', 'extract rules', 'extract me', 'analyze my patterns' 등으로 트리거. 대화 기록 분석, 패턴 추출, 자아 모델링, pretending 관련 요청에도 반드시 사용할 것.
How this skill is triggered — by the user, by Claude, or both
Slash command
/autonomy-obsession:extract-meThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> 특성 목록(Table)이 아니라 생성 규칙(Function)을 추출한다.
특성 목록(Table)이 아니라 생성 규칙(Function)을 추출한다. "미니멀 좋아함"이 아니라 "기본적으로 미니멀 선호. 단 반복 비용이 커지면 약간 복잡해도 자동화를 택함". 모든 규칙에는 반드시 반례(counter-example)가 있어야 한다.
상세 철학은 PHILOSOPHY.md를 참조.
Phase 1: 정제 (Python, ~30초)
history/index.json → 1,196 세션 JSONL
→ user/assistant 텍스트 + 도구 사용 내역만 추출
→ 379MB → 39MB (96.5% 노이즈 제거)
→ analysis/cleaned/ 에 정제된 파일 저장
Phase 2: 배치 (Python, ~5초)
→ 400KB 이하로 bin packing
→ ~115 bins 생성
→ analysis/batches.json 에 배치 매핑 저장
Phase 3: 추출 (Haiku 병렬, ~5분)
→ 각 bin → Haiku subagent
→ 10개 레이어별 판단 순간(moments) 추출
→ analysis/moments/ 에 bin별 결과 저장
Phase 4: 종합 (Opus, ~3분)
→ 전체 moments 통합
→ 중복 제거, 충돌 해결, 가치 위계 추론
→ analysis/rules.yaml (구조화된 규칙집)
→ analysis/pretend-as-me.md (시스템 프롬프트용)
Phase 5: 검증 (선택)
→ 처음 보는 상황 10개로 예측 테스트
→ 7/10 이상 일치 → 통과
scripts/clean.py를 실행한다.
이 스크립트는 각 JSONL 세션에서 다음만 추출한다:
type: "user" → message.content 중 type: "text" 부분type: "assistant" → message.content 중 type: "text" 부분type: "assistant" → message.content 중 type: "tool_use" → 도구명 + 입력 요약type: "user" → message.content 중 type: "tool_result" → 결과 (2KB 제한)출력: analysis/cleaned/{project}/{session_id}.json
{
"session_id": "abc123",
"project": "portagain",
"turns": [
{"role": "user", "text": "우아한 방법으로 해줘"},
{"role": "assistant", "text": "심볼릭 링크를 쓰겠습니다"},
{"role": "assistant", "tool": "Bash", "input": {"command": "ln -s ..."}},
{"role": "tool_result", "content": "링크 생성됨"},
{"role": "user", "text": "좋아"}
]
}
scripts/batch.py를 실행한다.
정제된 파일들을 400KB 이하 bin으로 묶는다 (first-fit decreasing bin packing). 600KB 초과 파일이 있으면 50턴 슬라이딩 윈도우로 분할한다.
출력: analysis/batches.json
{
"bins": [
{
"bin_id": 0,
"sessions": ["portagain/abc123.json", "portagain/def456.json"],
"total_kb": 380
}
],
"total_bins": 115,
"strategy": "first-fit-decreasing, limit=400KB"
}
각 bin에 대해 Haiku subagent를 생성한다. 병렬도는 10으로 시작하고, 실패 시 줄인다.
너는 대화 기록 분석가다. 아래 대화에서 "이 사람의 판단 방식"을 드러내는 순간들을 추출하라.
## 추출할 10개 레이어
0. 목표 함수: 이 사람이 궁극적으로 최적화하는 것
1. 금지 규칙: 절대 안 하는 선택
2. 트레이드오프 가중치: 두 가치가 충돌할 때 뭘 택하는지
3. 예외 조건: 평소 규칙을 깨는 상황
4. 불확실성 처리: 모를 때 어떻게 반응하는지
5. 상태 변화: 피곤/급할/자신있을 때 달라지는 판단
6. 감정 방향성: 뭘 불쾌해하고 뭘 통쾌해하는지
7. 실패 패턴/약점: 이 사람의 판단이 실패하는 순간
8. 자기 수정 루프: 틀렸을 때 어떻게 업데이트하는지
9. 서사적 자아: 자신을 어떤 사람으로 이해하는지
## 추출 포맷
각 발견에 대해:
```yaml
- layer: 0 # 레이어 번호
trigger: "어떤 상황에서"
judgment: "무엇을 기준으로 보고"
choice: "대체로 뭘 고르고"
exception: "언제 바꾸고"
expression: "어떤 말투로 드러내는지"
evidence: "실제 대화에서의 원문 인용"
counter_evidence: "이 규칙이 깨진 순간 (없으면 null)"
{cleaned_conversation_data}
### 결과 저장
`analysis/moments/bin-{id}.yaml`
---
## Phase 4: Opus 종합
모든 moments를 모아서 Opus agent에게 넘긴다.
### Opus 프롬프트
아래는 1,196개 대화 세션에서 추출한 판단 순간들이다. 이것들을 종합하여 이 사람의 "생성 규칙집"을 만들어라.
meta:
total_sessions_analyzed: 1196
total_moments_extracted: N
generated_at: "YYYY-MM-DD"
confidence_note: "빈도가 높을수록 confidence가 높다"
layers:
- id: 0
name: "목표 함수"
rules:
- id: "goal-001"
rule: "생성 규칙 문장"
confidence: high|medium|low
frequency: N # 이 규칙이 관찰된 횟수
evidence:
- "인용 1"
- "인용 2"
exceptions:
- condition: "이런 상황에서는"
behavior: "이렇게 바뀜"
evidence: "인용"
rules.yaml을 기반으로, AI 시스템 프롬프트에 바로 넣을 수 있는 형태로 변환하라. 포맷은 자연어 지시문. "이 사람은..." 이 아니라 "너는..." 형태로 쓴다.
---
## 진행 상태 관리
`analysis/progress.json`으로 상태를 추적한다.
```json
{
"phase": 3,
"phase_name": "extraction",
"total_bins": 115,
"completed_bins": [0, 1, 2, ...],
"failed_bins": [],
"started_at": "...",
"last_updated": "..."
}
이 파일이 존재하면 중단된 지점부터 재개한다. Phase 1-2는 멱등이므로 항상 재실행해도 안전하다.
/extract-me 를 실행하면 Phase 1 → 2 → 3 → 4 를 논스톱으로 끝까지 완주한다. 중간에 멈추지 않는다.
1. Phase 1 실행: python3 skills/extract-me/scripts/clean.py
→ 완료 확인: analysis/cleaned/ 에 파일 존재
→ 즉시 Phase 2로
2. Phase 2 실행: python3 skills/extract-me/scripts/batch.py
→ 완료 확인: analysis/batches.json 존재
→ 즉시 Phase 3으로
3. Phase 3 실행: batches.json에서 전체 bin 목록을 읽고,
10개씩 병렬로 Haiku subagent 생성.
각 agent는 bin 내 세션 파일을 읽고 moments를 추출하여
analysis/moments/bin-{NNN}.yaml 에 저장.
progress.json 으로 진행 추적.
전체 bin 완료될 때까지 반복.
→ 전체 bin 완료 확인
→ 즉시 Phase 4로
4. Phase 4 실행: analysis/moments/ 의 모든 yaml을 읽고,
Opus agent에게 종합을 맡김.
→ analysis/rules.yaml 생성
→ analysis/pretend-as-me.md 생성
→ 완료 보고
progress.json이 있으면 완료된 bin은 건너뛰고 남은 것만 처리한다./extract-me --status 로 현재 진행 상태를 확인할 수 있다.analysis/
├── cleaned/ # Phase 1 출력 (정제된 대화)
│ ├── portagain/
│ ├── ai-native-life/
│ └── ...
├── batches.json # Phase 2 출력 (배치 매핑)
├── moments/ # Phase 3 출력 (bin별 추출 결과)
│ ├── bin-000.yaml
│ ├── bin-001.yaml
│ └── ...
├── rules.yaml # Phase 4 출력 (최종 규칙집)
├── pretend-as-me.md # Phase 4 출력 (시스템 프롬프트용)
└── progress.json # 진행 상태
npx claudepluginhub tumblecat44/autonomy-obsession --plugin autonomy-obsessionDistills user profiles from prompt history or local agent chat logs, extracting personality, work traits, and communication preferences. Opt-in for explicit requests with privacy safeguards.
Extracts durable working preferences from recent Cursor chats and converts them into skills, rules, or workflow docs. Use when asked to learn preferences, mine feedback, or personalize workflows.
Extracts conversation patterns and logic jumps from tagged dialog reports, clustering trigger→reaction pairs into a thinking profile and self-interview document.