모든 프롬프트를 자동으로 엔지니어링해 주는 Claude Code 훅을 만들었습니다
요약
Claude Code 사용자의 프롬프트 품질을 자동으로 높여주는 'steelprompt' 훅을 소개합니다. Anthropic의 프롬프트 엔지니어링 원칙을 적용하여 프롬프트를 재구조화하고 에이전트의 안전성과 출력 형식을 강화합니다.
핵심 포인트
- Anthropic의 7가지 원칙을 기반으로 프롬프트를 자동 재구조화함
- 3단계 결정 프로토콜을 통해 단순 작업은 우회하고 복잡한 작업은 보강함
- 에이전트 안전성을 위해 위험한 작업 시 제약 조건을 자동 주입함
- JSON, SQL 등 특정 형식을 위한 프리필 앵커 및 부정적 예시 제공
- Claude Code 플러그인 마켓플레이스를 통해 간편하게 설치 가능
모든 프롬프트를 자동으로 엔지니어링해 주는 Claude Code 훅을 만들었습니다
Claude Code를 사용하는 대부분의 개발자들은 다음과 같이 프롬프트를 작성합니다:
auth 엔드포인트에 rate limiting(속도 제한)을 추가해줘
이렇게 해도 작동은 합니다. 하지만 많은 잠재적 이점을 놓치고 있습니다.
Anthropic의 자체 프롬프트 엔지니어링 (Prompt Engineering) 문서에 따르면, 역할 할당(role assignment), 명시적 컨텍스트(explicit context), 제약 사항(constraints), 출력 형식(output format), 그리고 예시(examples)를 포함하여 잘 구조화된 프롬프트는 응답 품질을 극적으로 향상시킵니다. 문제는 무엇일까요? 매번 그런 방식으로 프롬프트를 작성하려면 5~10분이 소요된다는 점입니다. 아무도 그렇게 하지 않습니다.
그래서 저는 steelprompt를 만들었습니다. 이는 Claude가 프롬프트를 확인하기도 전에, Anthropic의 7가지 공식 원칙을 사용하여 모든 프롬프트를 조용히 재구조화하는 Claude Code 훅입니다.
실제로 하는 일
steelprompt는 UserPromptSubmit 훅을 통해 모든 프롬프트를 가로채고 3단계 결정 프로토콜(3-tier decision protocol)을 실행합니다:
Tier 1 — 우회 (Bypass): 슬래시 명령어(/), 5단어 미만의 프롬프트, 그리고 원자적 작업(atomic tasks)은 변경 없이 그대로 통과됩니다. 간단한 작업에는 오버헤드가 없습니다.
Tier 2 — 질문 (Ask): 중요한 정보가 누락된 경우, steelprompt는 추측하기 전에 1~2개의 타겟팅된 질문을 던집니다. Claude가 잘못된 결과물을 내놓은 뒤에
에이전트 안전성 (Agentic safety): 작업에 되돌릴 수 없는 작업(레코드 삭제, 테이블 드롭 등)이 포함된 경우, 안전 제약 조건이 자동으로 주입됩니다 — 영향을 받는 행(row) 수를 표시하고, 확인을 요구하며, 지정되지 않은 테이블은 건드리지 않도록 합니다.
긴 컨텍스트 순서 지정 (Long context ordering): 작업이 긴 파일을 참조할 때, steelprompt는 파일 내용을 작업 설명 앞에 배치합니다 — 이는 긴 데이터가 쿼리보다 앞서야 한다는 Anthropic의 가이드라인을 따르는 것입니다.
프리필 앵커 (Prefill anchors): 엄격하고 중요한 출력 형식(JSON, YAML, SQL)의 경우, steelprompt는 첫 번째 토큰부터 Claude가 올바른 형식을 유지하도록 프리필 문자({, ---, SELECT)를 추가합니다.
부정적 예시 (Negative examples): 모호한 형식 작업의 경우, steelprompt는 <example> 블록과 함께 <bad_example> 블록을 생성합니다 — 무엇을 생성하지 말아야 하는지를 보여줌으로써 형식에 민감한 작업에서의 환각 (hallucination)을 줄입니다.
모드 (Modes)
/steelprompt mode full # 기본값: 전체 3단계 프로토콜
/steelprompt mode preview # 실행 전 엔지니어링된 프롬프트 표시
/steelprompt mode ask-only # 명확히 하기 위한 질문만 수행
...
preview 모드는 학습에 특히 유용합니다 — 무엇이 주입되는지 정확히 확인할 수 있으며, Claude가 실행되기 전에 편집하거나 취소할 수 있습니다.
설치 (Install)
claude plugin marketplace add bhutano/bhutano-marketplace
claude plugin install steelprompt
요구 사항: Claude Code 2.0.22 이상 · Python 3.8 이상
API 키 불필요. 설정 불필요. 외부 호출 없음. 기본값은 full 모드입니다.
왜 래퍼(wrapper)가 아닌 훅(hook)인가
제가 가장 만족하는 설계 선택은 steelprompt가 Claude의 추론(inference) 전이 아니라, 추론 내부에서 실행된다는 점입니다. 별도의 API 호출이 없으며, 지연 시간(latency)이 추가되지 않고, 추가 비용도 발생하지 않습니다. 구조 재편은 응답을 생성하는 동일한 추론 과정의 일부로 이루어집니다.
이는 또한 steelprompt가 슬래시 명령(slash commands), 컨텍스트 파일, 멀티턴 대화(multi-turn conversations) 등 Claude Code의 모든 네이티브 기능과 간섭 없이 작동함을 의미합니다.
다음 단계 (What's next)
- 프로젝트별 맞춤형 원칙 프로필 (custom principle profiles) 지원
.claude프로젝트 컨텍스트 파일과의 통합- 원본 프롬프트와 엔지니어링된 프롬프트를 나란히 비교하는
diff뷰
기여를 환영합니다: github.com/bhutano/steelprompt
직접 사용해 보신다면, 어떤 부분이 제대로 작동하지 않는지 진심으로 알고 싶습니다. Issue를 생성하거나 Anthropic Discord에서 저를 찾아주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기