meta-prompt: 모델별 가이드북 기반 프롬프트 변환기
가이드북 루트: 이 스킬의 베이스 디렉토리(이 SKILL.md가 있는 곳)의 guidebooks/
(이하 $GB. 설계 배경: 같은 디렉토리의 PLAN.md)
에이전트 팀 구성으로 확장
사용자가 서비스 조합이나 에이전트 팀 자동 구성을 요청하면 이 저장소의 agent-team-composer를 읽고 팀 구성을 수행한다. 팀 구성기는 이 스킬을 역할별 프롬프트 컴파일러로 재사용한다. 컴파일 단계에서는 프롬프트 산출물만 생성하고 실제 배정·실행은 팀 구성기가 담당한다. 단일 모델용 프롬프트 요청은 아래 기존 흐름으로 처리한다.
핵심 원칙
- 토큰 절약 — 3단 점진 로딩을 엄수한다. ①
$GB/registry.yaml(항상) → ②해당 모델의index.yaml(변환 시) → ③index의when조건에 맞는 카드 파일만 선별 로드. 모델 디렉토리 전체를 읽지 않는다. - 가이드북에 없는 지식으로 임의 변환하지 않는다. 카드가 다루지 않는 영역은 일반 프롬프트 원칙으로 채우되, 그 사실을 산출물 해설에 명시한다.
Codex 최종 실행 전 적용
사용자가 실행 전 적용을 명시하면, 변환된 프롬프트를 보여주고 끝내지 말고 같은 턴에서 그 프롬프트를 작업 명세로 사용해 수행한다.
- 원 요청, 현재 세션의 모델/실행 대상, 이미 주어진 제약을 수집한다. 이미 필요한 정보가 있으면 다시 묻지 않는다.
- Codex에서 현재 작업을 수행하는 경우
openai-codex가이드북을 우선 사용한다. 사용자가 다른 최종 모델을 지정하면 그 모델 가이드북을 우선한다. - 3단 점진 로딩과 진단·변환을 수행한다.
- 변환본을 1~3문장으로 요약해 알린 뒤, 변환된 프롬프트의 목표·제약·검증 조건을 실제 작업 계획과 구현에 적용한다.
- 과금되는 외부 모델/API 실행이 필요하면, 변환은 수행하되 API 호출 전에 비용과 대상을 밝히고 확인받는다.
$meta-prompt 또는 /meta-prompt로 명시 호출한 경우에도, 사용자가 “변환만”이라고 하지 않는 한 이 최종 실행 전 적용 모드로 처리한다. 단, 사용자가 단순히 프롬프트 산출물만 요청한 경우에는 기존처럼 변환본만 전달한다.
변환 플로우
1. 타깃 모델 감지 (사다리 순서대로)
- 환경 자체 감지: 요청이 "지금 이 세션"용이면 런타임에서 확인된 현재 서비스·모델이 타깃. Codex 작업은
openai-codex를 우선하며 특정 호스트를 가정하지 않는다. 세션에 연결된 실행 도구가 요청 내용과 맞으면 실제 실행 모델을 후보로. - 사용자 명시: 모델명이 있으면 registry의
aliases로 매칭. - 맥락 추론: 요청 성격으로 추론하되(영상 → media 타입 모델 등), 추론했음을 반드시 명시: "○○ 모델 기준으로 변환합니다. 다른 모델이면 알려주세요."
- 질문: 모호하면 registry의 모델 목록을 AskUserQuestion으로 제시.
- 폴백: 레지스트리에 없는 모델이 명시됐으면
$GB/_generic으로 변환하되, 전용 가이드북이 없어 모델 고유 문법은 반영 못 했음을 밝히고/meta-prompt add <model>을 권한다.
2. 가이드북 로드 + 신선도 확인
$GB/registry.yaml에서 모델 확인.last_verified가staleness_days(30일)를 넘었으면 경고만 한다: "이 가이드북은 N일 전 검증본입니다./meta-prompt refresh <model>로 갱신할 수 있습니다." 차단하지 않는다.verification이knowledge-based(공식 가이드 대조 전 초안) 또는partial(일부만 공식 대조)이면 그 상태를 함께 표기한다. 카드 안의 개별verification도 같은 규칙으로 읽는다.$GB/<model-id>/index.yaml을 읽고,when조건이 요청에 해당하는 카드만 로드.
3. 슬롯 확인 → 컨텍스트 보강
- index의
slots.required중 사용자 요청에서 채울 수 없는 것만 모아 AskUserQuestion 1라운드로 질문 (요청에서 추론 가능하면 묻지 않는다). slots.optional은default로 채우고, 채운 가정을 산출물에 명시한다.
4. 진단 → 변환
변환 전에 원 요청을 3차원으로 각 한 줄씩 진단한다 — 명확성(단일 해석인가) / 구체성(기준이 측정 가능한가) / 맥락(배경·용도가 있는가). 낮게 진단된 차원은 변환에서 반드시 보강하고, 무엇을 보강했는지 해설에 연결한다.
이후 로드한 카드의 rules/template/pitfalls에 따라 사용자 요청을 프롬프트로 재작성한다.
- 언어는 index의
output_language를 따른다 (english-prompt: 프롬프트 영어 + 해설 한국어 /follow-target: 프롬프트의 용도 언어). - 카드의 pitfalls를 체크리스트로 최종 점검한다.
5. 산출
[변환된 프롬프트 — 코드블록]
**진단**: 원 요청의 3차원 진단과 보강 포인트 (원 요청이 이미 충실하면 생략)
**적용 규칙**: 사용한 카드와 핵심 결정 2~3줄
**가정**: optional 슬롯을 기본값으로 채운 목록 (없으면 생략)
API 파라미터 권고가 있는 카드(reasoning_effort, temperature, responseSchema 등)면 프롬프트 아래 별도로 표기.
6. 실행 제안 (전달 기본 + 확인 후 실행)
세션에 타깃 모델의 실행 경로가 있을 때만 제안한다:
- Higgsfield MCP 도구 (generate_image/video 등) → 크레딧 소모를 명시하고 실행 여부 질문
- codex CLI → 비용 고지 후 질문
- 현재 Claude 세션이 타깃 → "이 프롬프트로 바로 진행할까요?"
과금이 걸린 실행은 사용자가 확인한 경우에만. 실행 경로가 없으면 프롬프트 전달로 종료.
서브커맨드
/meta-prompt refresh <model>
$GB/<model-id>/sources.yaml의 URL을 WebFetch로 수집 (local:접두 소스는 Read).- 기존 카드와 대조해 변경된 카드만 수정. 새 주제가 생겼으면 카드 추가를 제안.
- registry의
last_verified를 오늘로,verification: verified로 갱신. - 변경 요약을 보고 (변경 없음이면 "변경 없음, 검증일만 갱신").
/meta-prompt eval [<model>] <요청>
변환이 실제로 나은지 A/B로 증명한다.
- 요청을 변환 플로우로 처리해 원본 프롬프트와 변환본 프롬프트를 준비.
- 타깃 모델의 실행 경로가 세션에 있어야 한다 — 없으면 eval 불가를 고지하고 두 프롬프트만 전달. 과금이 걸리면 2회 실행 비용을 명시하고 확인받는다.
- 두 프롬프트를 동일 조건으로 실행하고 결과를 나란히 제시. 과업 충족·형식 준수·완성도 기준으로 비교 평가한다. 응답이 역질문으로 끝나면 '추가 턴 필요'로 간주해 과업 충족에서 감점한다 (모호성을 프롬프트가 흡수하지 못했다는 신호).
- 변환본이 우세하지 않으면 그 사실을 정직하게 보고하고, 원인이 된 카드의 개선점을 기록한다 (가이드북 피드백 루프).
/meta-prompt add <model>
- 사용자에게 공식 프롬프팅 가이드 URL을 확인 (모르면 WebSearch로 후보 제시).
$GB/<model-id>/생성:sources.yaml→ 수집 → 카드 증류(주제당 1카드, 간결하게) →index.yaml(카드when+ 슬롯 정의).- registry에 모델 등록 (aliases 포함).
- 카드 초안을 사용자 검토받고 확정.
하지 않는 것
- 카드 없이 장문의 일반론 프롬프트 강의를 하지 않는다.
- 요청받지 않은 모델로의 동시 변환을 하지 않는다 (요청 시에만 비교 제공).
- refresh를 자동으로 실행하지 않는다 (경고까지만).