← 포트폴리오

LLM 지식팩 · 하위 모델용

🧩 LLM Pack작은 모델에게 큰 모델의 판단을 주입

Opus·Sonnet보다 작은 모델(Haiku·로컬 LLM)이 같은 품질의 결과를 내도록 만든 규칙 팩이다. 사람용 문서를 그대로 먹이는 대신, 마크업을 걷어내고 · 추론을 규칙으로 치환하고 · 작업 단위로 쪼갰다.

진입점: /llms.txt 또는 /llm/index.md (라우터) — 모델은 라우터만 먼저 읽고 필요한 파일 1~2개를 추가로 읽는다. 전체를 먹이지 않는다.

01 · 왜 별도 포맷이 필요한가

⛔ 사람용 HTML을 그대로 먹이면

  • 마크업이 토큰의 절반 이상 — 130KB 페이지 ≈ 3~4만 토큰, 그중 상당수가 <div class=...>
  • 서술형은 추론을 요구 — "대개", "상황에 따라"를 작은 모델은 임의 해석
  • 한 페이지에 19장이 섞임 — 필요 없는 맥락까지 전부 로드
  • 근거와 결론이 떨어져 있어 중간을 건너뛰면 규칙만 남고 이유가 사라짐

✅ 지식팩의 설계

  • 마크다운 평문 — 같은 정보가 1/3 토큰
  • 규칙형 서술 — "~한다 / ❌ 금지한다"로 판단 여지 제거
  • 작업 단위 분할 — 파일당 1.1k~3.1k 토큰, 자립형
  • 라우터 우선 — 요청 → 읽을 파일 1개를 표로 지정
  • 각 파일 끝에 확인 명령 — 모델이 스스로 검증
STEP 1

라우터 로드

index.md (약 1.2k 토큰)

STEP 2

표에서 매칭

사용자 요청 ↔ 파일 1개

STEP 3

해당 파일만 로드

1.1k~3.1k 토큰

STEP 4

규칙대로 실행

명령은 그대로 복사

STEP 5

확인 절차 실행

못 했으면 "미검증" 보고

02 · 파일 목록 — 전부 자립형

index.md라우터 — 요청과 파일 매핑. 반드시 먼저≈1.2k tok 10-editor-core.md에디터 설계 7규칙 + 위반 검출 명령≈2.6k tok 11-editor-errors.md증상 → 원인 → 조치 (에러 없이 틀릴 때)≈3.1k tok 12-verify.md검증 스크립트 템플릿과 실행법≈1.8k tok 13-schema.md문서 JSON 구조 · 마이그레이션≈1.3k tok 20-motion-install.md영상·3D·자막 도구 설치 (8종, GitHub 차단 대응 포함)≈3.0k tok 21-motion-usage.md도구 선택표(8종) + 최소 동작 예제≈4.2k tok 22-motion-errors.md에러 메시지 문자열 → 조치≈2.6k tok 30-agents.md에이전트 정의 3종 (복사용)≈2.7k tok 31-skills.md스킬 정의 3종 (복사용)≈2.3k tok 40-deploy.mdCloudflare Pages 배포와 함정≈1.1k tok 41-claude-md.mdCLAUDE.md 계약 템플릿≈1.4k tok
컨텍스트 예산: 라우터(1.2k) + 작업 파일 1개(최대 4.2k) = 약 5.4k 토큰. 8k 컨텍스트 로컬 모델에서도 대화 여유가 남는다. Haiku처럼 넉넉하면 관련 파일 3~4개를 한 번에 올려도 12k 미만이다.

03 · 사용법

로컬 모델 (Ollama · LM Studio 등)

팩을 내려받아 시스템 프롬프트로 주입
# 1) 팩 전체를 받는다 (12개 파일, 76KB)
mkdir -p llm-pack && cd llm-pack
for f in index 10-editor-core 11-editor-errors 12-verify 13-schema \
         20-motion-install 21-motion-usage 22-motion-errors \
         30-agents 31-skills 40-deploy 41-claude-md; do
  curl -fsSL "https://design-portfolio-7yo.pages.dev/llm/$f.md" -o "$f.md"
done

# 2) 라우터를 시스템 프롬프트에 넣는다
cat index.md        # ← 이 내용을 시스템 프롬프트로

# 3) 작업이 정해지면 해당 파일만 대화에 추가한다
cat 21-motion-usage.md

Claude Code (Haiku 등)

프로젝트에 두고 CLAUDE.md에서 가리킨다
# 프로젝트 안에 팩을 둔다
mkdir -p docs/llm && # 위 curl 루프로 docs/llm 에 받기

# CLAUDE.md 에 아래 블록을 추가
#   ## 지식팩
#   작업 전 docs/llm/index.md 를 읽고, 라우팅 표에 따라 해당 파일만 추가로 읽는다.
#   팩에 없는 내용은 추측하지 않고 "지식팩에 없음"이라고 답한다.

모델에게 주는 지시문 (그대로 복사)

시스템 프롬프트 프리픽스
너는 아래 지식팩의 규칙을 따른다.

1. 먼저 index.md 의 라우팅 표에서 현재 요청에 해당하는 파일을 고른다.
2. 그 파일만 읽는다. 전부 읽지 않는다.
3. 팩에 없는 내용은 추측하지 않는다. "이 지식팩에 없음"이라고 답한다.
4. 명령어는 그대로 복사해 실행한다. 임의로 바꾸지 않는다.
5. ❌(금지)로 표시된 것은 예외 없이 하지 않는다.
6. "완료"라고 말하기 전에 파일 끝의 확인 절차를 실행한다.
   실행하지 못했으면 "미검증"이라고 명시한다.

04 · 작은 모델을 위해 바꾼 것

문제사람용 문서에서는지식팩에서는
판단을 요구하는 표현"대개 이렇게 한다", "상황에 따라 다르다"조건문으로 치환 — "X면 Y한다". 예외를 만들지 않는다고 명시
암묵적 금지문맥상 하면 안 되는 것을 설명으로 전달❌ 기호로 명시 — "❌ 금지: 아트보드 폭을 100%로 두는 것"
플레이스홀더"적절한 값으로 바꿔 쓰세요"실제 값을 박아둔다 — 바꿔야 하는 곳만 <...>로 표시
에러 대응원인을 설명하고 판단을 맡김에러 문자열 → 실행할 명령 표. 없으면 "팩에 없음"이라고 답하게 지시
완료 판정독자가 알아서 확인파일 끝에 확인 명령을 두고, 미실행 시 "미검증" 보고를 강제
컨텍스트 과부하한 페이지에 전부작업 단위로 분할 + 라우터. 필요한 것만 로드
검증되지 않은 부분: 이 팩이 실제로 작은 모델의 성능을 얼마나 끌어올리는지는 아직 측정하지 않았다. 설계 원칙에 따라 만든 상태다. 실제 효과를 확인하려면 같은 과제를 ① 팩 없이 ② 팩과 함께 돌려 결과를 비교해야 한다 — 이 측정은 미실시다.
알려진 한계: 지식팩은 이 환경에서 검증된 범위만 담는다(macOS·Chrome·특정 버전). 다른 OS나 버전에서는 명령이 다를 수 있고, 팩은 그 차이를 모른다. 모델이 "팩에 없음"이라고 답하면 그것이 정상 동작이다 — 억지로 답을 만들게 하지 말 것.