---
name: find-pulp
description: >-
  스킬, 에이전트, AGENTS.md, CLAUDE.md, Codex 프롬프트, 메모리, 프로젝트 문서가 너무 많이 쌓여
  서로 충돌하거나 과도한 탐색을 유발하는지 감사하고, 근거 기반으로 개선점을 제안하거나 안전한 범위에서 직접 정리한다.
  Trigger on "find-pulp", "하네스 꼬임", "스킬 꼬임", "규칙 충돌", "지시사항 충돌", "과도한 탐색",
  "탐색 과잉", "컨텍스트 과잉", "하네스 감사", "스킬 감사", "source-of-truth drift", "원본/배포본 드리프트",
  "메모리/AGENTS/스킬 동기화", "규칙이 너무 많아", "에이전트가 헤매".
version: 1.0.0
allowed-tools:
  - Read
  - Glob
  - Grep
  - Bash
  - Write
  - Edit
---

# Find Pulp

스킬, 하네스, 메모리, 프로젝트 규칙, Codex/Claude 어댑터가 서로 맞물리면서 생기는 "펄프"를 찾는다. 여기서 펄프란 좋은 의도로 쌓인 규칙과 문서가 시간이 지나며 원본과 파생본을 헷갈리게 만들고, 우선순위를 흐리고, 에이전트가 필요한 것보다 훨씬 많이 읽게 만들며, 작업 성능을 떨어뜨리는 상태다.

이 스킬의 목적은 새 규칙을 더 얹는 것이 아니라 **충돌을 줄이고, 원본을 명확히 하고, 읽는 순서를 가볍게 하고, 검증 가능한 동기화 지점을 남기는 것**이다.

## When to Use

- 사용자가 `find-pulp`, `하네스 꼬임`, `스킬 꼬임`, `규칙 충돌`, `과도한 탐색`, `컨텍스트 과잉`이라고 말할 때
- 전역 `AGENTS.md`, 프로젝트 `AGENTS.md`, `CLAUDE.md`, README, 스킬, 프롬프트, 메모리, 실행 계획이 모두 끼어 있어 우선순위가 불명확할 때
- 원본 스킬과 Codex 프롬프트, 마켓플레이스 설명, 글로벌 템플릿, 설치된 개인 설정이 서로 다른 말을 하는지 점검해야 할 때
- 에이전트가 작업 전에 너무 많은 문서를 읽거나, 매번 같은 탐색을 반복하거나, 특정 스킬이 과하게 트리거되는지 보고 싶을 때
- 새 하네스를 만들기 전에 기존 하네스가 이미 충분한지, 더하는 대신 줄여야 하는지 판단해야 할 때
- 사용자가 개선까지 요청했으며, 저위험 문서/카탈로그 drift를 직접 고칠 수 있을 때

## When Not to Use

- 단일 코드 버그, 단일 기능 구현, 단일 문서 편집처럼 하네스 구조와 무관한 작업
- 요구사항 자체가 모호해서 제품 스펙을 먼저 정해야 하는 경우. 이때는 `vague` 또는 `clarify`가 먼저다
- 전략 문서의 가정과 사각지대를 검토하는 경우. 이때는 `unknown`이 먼저다
- 코드 품질의 중복, 죽은 코드, 과추상화만 정리하는 경우. 이때는 `ai-slop-cleaner`가 먼저다
- 사용자가 "분석만" 원했는데 임의로 전역 설정이나 개인 메모리를 바꾸려는 경우

## 핵심 원칙

1. **더하기 전에 빼기**: 충돌을 새 상위 규칙으로 덮지 않는다. 가능하면 중복 문장을 삭제하거나 더 좁은 문서로 옮긴다.
2. **원본 우선**: 원본과 파생본을 구분한다. 예를 들어 plugin-mh에서는 `skills/<name>/SKILL.md`가 원본이고 `codex/prompts/<name>.md`는 파생본이다.
3. **가장 좁은 권위 문서**: 전역 규칙보다 프로젝트 규칙, 프로젝트 규칙보다 더 깊은 디렉토리 규칙, 파생본보다 원본을 우선한다.
4. **증거 기반 판정**: "꼬일 것 같다"가 아니라 파일 경로, 문장, 카운트, 트리거, 검증 스크립트 결과로 말한다.
5. **탐색 예산을 명시**: 모든 문서를 읽지 않는다. 먼저 진입점과 카탈로그를 읽고, 후보가 잡힌 뒤 관련 파일만 더 읽는다.
6. **회사/개인 경계 보존**: 개인 전략, 메모리, 로컬 도구 상태를 회사 저장소 문서로 복사하지 않는다.
7. **저위험 수정만 즉시 적용**: 카운트, 링크, 카탈로그, stale 문구, 명백한 원본/파생본 drift는 고칠 수 있다. 정책 결정이나 우선순위 변경은 선택지를 제시한다.

## Pulp 유형

| 유형 | 증상 | 예시 | 기본 처리 |
|------|------|------|-----------|
| **Priority Conflict** | 두 규칙이 같은 상황에서 반대 행동을 요구 | "항상 질문" vs "명확하면 자율 실행" | 우선순위와 적용 조건을 분리 |
| **Source Drift** | 원본과 파생본이 서로 다른 카운트, 트리거, 절차를 가짐 | SKILL.md는 25개인데 README는 24개 | 원본 기준으로 파생본 동기화 |
| **Trigger Collision** | 여러 스킬이 같은 자연어에 과하게 반응 | "검증"이 live-verify, review-loop, tdd 모두 트리거 | 라우팅 기준과 우선순위 추가 |
| **Over-Read Loop** | 작업 전 필수 읽기 문서가 너무 많아짐 | 루트 문서 8개 + 프로젝트 문서 9개 + 스킬 참조 | 필수/선택/상황별 읽기로 나누기 |
| **Stale Installed Surface** | 저장소 원본과 설치된 전역 파일/프롬프트가 다름 | `codex/user-global-AGENTS.md`와 `~/.codex/AGENTS.md` 불일치 | 설치/복사/링크 상태 명시 |
| **Environment Mismatch** | 검증 명령이 실제 셸/OS에서 깨짐 | bash 전제, tmux 전제, 인코딩 전제 | 현재 런타임 기준 대체 경로 명시 |
| **Archive Ambiguity** | 완료/보관 문서가 여전히 활성 계획처럼 보임 | 오래된 plans가 root pointer에 남음 | active/archive 경계와 읽기 조건 정리 |
| **Personal Leakage** | 개인 메모리나 전략이 팀 저장소로 섞임 | 개인 하네스 룰이 company docs에 복사됨 | 경계 표시, 포인터화, 제거 |

## Workflow

### Step 1: 범위 고정

요청에서 감사 범위를 추출한다.

- 전체 전역 하네스인지, 특정 저장소인지, plugin-mh 같은 스킬 저장소인지 구분한다.
- 사용자가 "개선해줘", "고쳐줘"라고 했으면 저위험 수정까지 포함한다.
- 사용자가 "분석해봐", "알아봐"라고 했으면 기본은 감사 보고서이며, 수정은 명시 요청 또는 매우 안전한 카탈로그 정합성에 한정한다.
- 범위가 너무 넓으면 먼저 1차 범위를 좁힌다: 전역 설정, 현재 저장소, 특정 스킬군 중 하나.

### Step 2: 진입점 인벤토리

처음부터 전체 저장소를 읽지 않는다. 먼저 다음 표면만 확인한다.

```bash
rg --files -g 'AGENTS.md' -g 'CLAUDE.md' -g 'README.md' -g 'GUIDE.md' -g 'SKILL.md' -g 'marketplace.json' -g 'plugin.json'
```

필요 시 아래 후보를 추가한다.

- `codex/AGENTS.md`, `codex/README.md`, `codex/prompts/*.md`
- `skills/*/SKILL.md`, `agents/*.md`
- `docs/PLANS.md`, `docs/product-specs/*`, `docs/exec-plans/**`
- 설치된 전역 표면: `~/.codex/AGENTS.md`, `~/.codex/prompts/`, `~/.codex/skills/`
- 메모리 표면은 사용자가 명시했거나 prior-context 의존성이 높을 때만 읽는다

### Step 3: 권위 지도 작성

같은 주제에 대해 어느 파일이 원본인지 표시한다.

| 주제 | 원본 | 파생본/설치본 | 검증 방법 |
|------|------|---------------|-----------|
| 스킬 로직 | `skills/<name>/SKILL.md` | `codex/prompts/<name>.md` | 금지 패턴 grep, 프롬프트 수 |
| 스킬 목록 | `skills/` 디렉토리 | README, CLAUDE, marketplace, GUIDE | 폴더 수와 카운트 비교 |
| 프로젝트 규칙 | 가장 가까운 `AGENTS.md` | 루트/글로벌 가이드 | 경로 우선순위 확인 |
| 개인 글로벌 설정 | `codex/user-global-AGENTS.md` 또는 사용자가 지정한 원본 | `~/.codex/AGENTS.md` | 파일 내용/링크 상태 비교 |
| 실행 계획 | active plan | archived/completed plans | 디렉토리와 날짜, 포인터 확인 |

### Step 4: Pulp 탐지

다음 질문을 파일별로 답한다.

1. 같은 상황에 대해 서로 다른 행동을 요구하는가?
2. "항상", "반드시", "먼저", "필수"가 너무 넓게 쓰였는가?
3. 원본과 파생본의 숫자, 이름, 트리거, 검증 명령이 다른가?
4. 특정 요청 하나가 3개 이상의 스킬을 동시에 강하게 트리거하는가?
5. 작업 전에 읽어야 하는 문서가 5개를 넘는데 필수/선택 기준이 없는가?
6. 실제 OS, 셸, 도구 설치 상태와 맞지 않는 검증 절차가 있는가?
7. 개인 문맥과 팀 문맥이 같은 문서에 섞여 있는가?
8. 오래된 계획/보고서가 현재 규칙처럼 링크되어 있는가?

### Step 5: 심각도 분류

| 등급 | 기준 | 예시 |
|------|------|------|
| **P0** | 안전/비밀/데이터 손상 또는 잘못된 저장소 변경을 유발 | 개인 메모리를 company docs에 복사하라고 지시 |
| **P1** | 에이전트가 높은 확률로 잘못된 행동을 함 | 원본/파생본 절차가 반대, 검증 명령이 항상 실패 |
| **P2** | 작업 속도와 판단 품질을 눈에 띄게 떨어뜨림 | 필수 읽기 문서 과다, 중복 라우팅 |
| **P3** | 혼란은 있지만 즉시 실패 가능성은 낮음 | 카운트 문구, stale 예시, 표현 중복 |

### Step 6: 개선 적용

개선은 다음 순서로 한다.

1. **카탈로그 정합성**: 카운트, 목록, 링크, 프롬프트 수, 버전 bump를 맞춘다.
2. **읽기 예산 축소**: "항상 읽기"를 "작업 유형별로 읽기"로 바꾼다.
3. **라우팅 조건 분리**: 유사 스킬 간 우선순위와 부적합 조건을 적는다.
4. **원본/파생본 주석 추가**: 어떤 파일을 수정해야 하고 어떤 파일은 생성물인지 표시한다.
5. **archive 경계 정리**: 완료 문서는 참조용으로 낮추고 active pointer를 좁힌다.
6. **검증 경로 현실화**: 실제 환경에서 실행 가능한 명령으로 바꾼다.

수정이 넓거나 정책 판단이 필요한 경우에는 바로 고치지 말고 선택지를 낸다.

### Step 7: 검증

저장소에 검증 스크립트가 있으면 실행한다. 없으면 최소한 다음을 확인한다.

- 수정한 파일을 다시 읽어 문맥이 이어지는지 확인
- `rg`로 이전 카운트, 이전 이름, stale trigger가 남았는지 확인
- 원본과 파생본 수가 일치하는지 확인
- 금지 패턴, 민감 파일, 개인 정보가 들어가지 않았는지 확인
- 변경 범위가 감사 범위를 벗어나지 않았는지 `git diff --stat`과 `git diff --check`로 확인

## Output Format

```markdown
## Find Pulp 결과

### 진단 요약
{가장 중요한 결론 2-4문장}

### 확인한 표면
- {파일/디렉토리}: {왜 읽었는지}

### 발견한 Pulp
| 등급 | 유형 | 위치 | 근거 | 영향 | 권장 처리 |
|------|------|------|------|------|-----------|
| P1 | Source Drift | README.md / skills/ | {증거} | {영향} | {처리} |

### 적용한 개선
- {파일}: {무엇을 어떻게 줄이거나 동기화했는지}

### 남은 결정
- {사용자/운영자가 골라야 하는 정책 선택}

### 검증
- `{command}`: PASS/FAIL
- 남은 리스크: {있으면}
```

## Good Fits

- `find-pulp - 내 전역 AGENTS, 메모리, plugin-mh 스킬이 서로 꼬이는지 봐줘`
- `하네스 꼬임 검사하고 명백한 카운트/프롬프트 drift는 고쳐줘`
- `스킬들이 너무 많이 트리거되는 것 같은데 과도한 탐색 줄이는 방향으로 개선해줘`
- `plugin-mh 원본 스킬과 Codex 프롬프트가 동기화되어 있는지 감사해줘`

## Bad Fits

- `로그인 버그 고쳐줘` — 기능/버그 작업이다
- `이 전략의 사각지대 찾아줘` — `unknown`이 더 적합하다
- `코드 슬롭 정리해줘` — `ai-slop-cleaner`가 더 적합하다
- `하네스 새로 만들어줘` — 신규 구축은 `harness`가 먼저이고, 이후 점검에 `find-pulp`를 붙인다

## Anti-Patterns

- 모든 문서를 다 읽은 뒤 "복잡하다"고 말하기
- 충돌을 해결한다며 더 높은 전역 규칙을 하나 더 추가하기
- 원본을 확인하지 않고 설치본이나 파생본만 수정하기
- stale 문구를 발견했는데 카운트/링크 검증을 하지 않기
- 개인 메모리의 문장을 팀 저장소에 그대로 복사하기
- 검증 명령이 실패했는데 "문서 작업이라 괜찮다"고 마무리하기
