# Meta Prompt

> 타깃 AI 모델(GPT/Codex, Claude, Gemini, GLM, Qwen, Grok, DeepSeek, Kimi, Seedance, 나노바나나, Higgsfield 등)별 프롬프트 가이드북에 맞춰 사용자의 요청을 최적화된 프롬프트로 변환·생성한다. 사용자가 "○○용 프롬프트 만들어줘", "프롬프트 최적화해줘", "이 요청을 ○○ 프롬프트로 바꿔줘", "프롬프트 잘 써줘", "meta-prompt"라고 하거나, "실행 전에 meta-prompt를 적용해줘", "최종 프롬프트를 바꾼 뒤 진행해줘"라고 할 때 사용한다. 후자의 경우 모델별 최종 프롬프트를 먼저 컴파일한 뒤 그 프롬프트로 작업을 계속 수행한다. 서브커맨드 — "/meta-prompt refresh 모델명"(가이드북 갱신), "/meta-prompt add 모델명"(새 모델 추가), "/meta-prompt eval 요청"(원본 vs 변환본 A/B 비교). 단순 문장 윤문이나 한글 자연화는 humanize-korean 소관.

- Skill: `2000silpeed/meta-prompt` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add 2000silpeed/meta-prompt`
- Raw SKILL.md: https://api.skillmd.com/api/skills/2000silpeed/meta-prompt/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: 2000silpeed (https://skillmd.com/u/2000silpeed)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/2000silpeed/meta-prompt

---


# meta-prompt: 모델별 가이드북 기반 프롬프트 변환기

가이드북 루트: 이 스킬의 베이스 디렉토리(이 SKILL.md가 있는 곳)의 `guidebooks/`
(이하 `$GB`. 설계 배경: 같은 디렉토리의 `PLAN.md`)

## 에이전트 팀 구성으로 확장

사용자가 서비스 조합이나 에이전트 팀 자동 구성을 요청하면 이 저장소의
[agent-team-composer](skills/agent-team-composer/SKILL.md)를 읽고 팀 구성을 수행한다.
팀 구성기는 이 스킬을 역할별 프롬프트 컴파일러로 재사용한다. 컴파일 단계에서는
프롬프트 산출물만 생성하고 실제 배정·실행은 팀 구성기가 담당한다.
단일 모델용 프롬프트 요청은 아래 기존 흐름으로 처리한다.

## 핵심 원칙

- **토큰 절약 — 3단 점진 로딩을 엄수한다.** ①`$GB/registry.yaml`(항상) → ②해당 모델의 `index.yaml`(변환 시) → ③index의 `when` 조건에 맞는 카드 파일만 선별 로드. 모델 디렉토리 전체를 읽지 않는다.
- **가이드북에 없는 지식으로 임의 변환하지 않는다.** 카드가 다루지 않는 영역은 일반 프롬프트 원칙으로 채우되, 그 사실을 산출물 해설에 명시한다.

## Codex 최종 실행 전 적용

사용자가 실행 전 적용을 명시하면, 변환된 프롬프트를 보여주고 끝내지 말고 **같은 턴에서 그 프롬프트를 작업 명세로 사용해 수행**한다.

1. 원 요청, 현재 세션의 모델/실행 대상, 이미 주어진 제약을 수집한다. 이미 필요한 정보가 있으면 다시 묻지 않는다.
2. Codex에서 현재 작업을 수행하는 경우 `openai-codex` 가이드북을 우선 사용한다. 사용자가 다른 최종 모델을 지정하면 그 모델 가이드북을 우선한다.
3. 3단 점진 로딩과 진단·변환을 수행한다.
4. 변환본을 1~3문장으로 요약해 알린 뒤, 변환된 프롬프트의 목표·제약·검증 조건을 실제 작업 계획과 구현에 적용한다.
5. 과금되는 외부 모델/API 실행이 필요하면, 변환은 수행하되 API 호출 전에 비용과 대상을 밝히고 확인받는다.

`$meta-prompt` 또는 `/meta-prompt`로 명시 호출한 경우에도, 사용자가 “변환만”이라고 하지 않는 한 이 최종 실행 전 적용 모드로 처리한다. 단, 사용자가 단순히 프롬프트 산출물만 요청한 경우에는 기존처럼 변환본만 전달한다.

## 변환 플로우

### 1. 타깃 모델 감지 (사다리 순서대로)

0. **환경 자체 감지**: 요청이 "지금 이 세션"용이면 런타임에서 확인된 현재 서비스·모델이 타깃. Codex 작업은 `openai-codex`를 우선하며 특정 호스트를 가정하지 않는다. 세션에 연결된 실행 도구가 요청 내용과 맞으면 실제 실행 모델을 후보로.
1. **사용자 명시**: 모델명이 있으면 registry의 `aliases`로 매칭.
2. **맥락 추론**: 요청 성격으로 추론하되(영상 → media 타입 모델 등), 추론했음을 반드시 명시: "○○ 모델 기준으로 변환합니다. 다른 모델이면 알려주세요."
3. **질문**: 모호하면 registry의 모델 목록을 AskUserQuestion으로 제시.
4. **폴백**: 레지스트리에 없는 모델이 명시됐으면 `$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>`

1. `$GB/<model-id>/sources.yaml`의 URL을 WebFetch로 수집 (`local:` 접두 소스는 Read).
2. 기존 카드와 대조해 **변경된 카드만** 수정. 새 주제가 생겼으면 카드 추가를 제안.
3. registry의 `last_verified`를 오늘로, `verification: verified`로 갱신.
4. 변경 요약을 보고 (변경 없음이면 "변경 없음, 검증일만 갱신").

### `/meta-prompt eval [<model>] <요청>`

변환이 실제로 나은지 A/B로 증명한다.

1. 요청을 변환 플로우로 처리해 **원본 프롬프트**와 **변환본 프롬프트**를 준비.
2. 타깃 모델의 실행 경로가 세션에 있어야 한다 — 없으면 eval 불가를 고지하고 두 프롬프트만 전달. 과금이 걸리면 2회 실행 비용을 명시하고 확인받는다.
3. 두 프롬프트를 동일 조건으로 실행하고 결과를 나란히 제시. 과업 충족·형식 준수·완성도 기준으로 비교 평가한다. 응답이 역질문으로 끝나면 '추가 턴 필요'로 간주해 과업 충족에서 감점한다 (모호성을 프롬프트가 흡수하지 못했다는 신호).
4. 변환본이 우세하지 않으면 그 사실을 정직하게 보고하고, 원인이 된 카드의 개선점을 기록한다 (가이드북 피드백 루프).

### `/meta-prompt add <model>`

1. 사용자에게 공식 프롬프팅 가이드 URL을 확인 (모르면 WebSearch로 후보 제시).
2. `$GB/<model-id>/` 생성: `sources.yaml` → 수집 → 카드 증류(주제당 1카드, 간결하게) → `index.yaml`(카드 `when` + 슬롯 정의).
3. registry에 모델 등록 (aliases 포함).
4. 카드 초안을 사용자 검토받고 확정.

## 하지 않는 것

- 카드 없이 장문의 일반론 프롬프트 강의를 하지 않는다.
- 요청받지 않은 모델로의 동시 변환을 하지 않는다 (요청 시에만 비교 제공).
- refresh를 자동으로 실행하지 않는다 (경고까지만).

