콘텐츠로 이동

anti-patterns

1) 모든 걸 사용자 프롬프트에 욱여넣기

섹션 제목: “1) 모든 걸 사용자 프롬프트에 욱여넣기”

매 채팅마다 역할·정책·예시를 다시 친다. 비용·재현성·평가가 모두 망가진다.

{{user_id}}, {{date}} 같은 매번 바뀌는 값을 시스템에 두면 캐시가 깨지고 회귀 테스트도 무의미해진다.

3) 신뢰할 수 없는 입력을 시스템처럼 취급

섹션 제목: “3) 신뢰할 수 없는 입력을 시스템처럼 취급”

외부 이메일·웹 본문을 시스템 프롬프트에 직접 합치면 프롬프트 인젝션이 그대로 정책으로 승격된다. 외부 입력은 항상 사용자 층에서 <untrusted> 같은 태그로 격리한다.

4) CLAUDE.md를 일회용 메모로 쓰기

섹션 제목: “4) CLAUDE.md를 일회용 메모로 쓰기”

“이번 한 번만”의 지시를 CLAUDE.md에 적고 안 지운다. 다음 작업이 오염된다.

CLAUDE.md에 “한국어로”와 “영문 코드 주석은 영문 유지”가 충돌하는데 우선순위를 안 적었다. 모델은 둘 다 무시한다.

역할만 적고 출력 형식을 안 적는다. 사용자가 매번 형식을 다시 지정해야 하면 분리의 의미가 없다.

7) sub-agent 프롬프트와 부모 시스템의 충돌

섹션 제목: “7) sub-agent 프롬프트와 부모 시스템의 충돌”

부모(CLAUDE.md)는 “한국어”라고 하고 sub-agent 시스템은 “English only”라고 적혀 있다. 변동성 위계가 무너졌다.