모든 스킬

caveman (JuliusBrussee/caveman, SKILL.md only)

군더더기를 빼고 기술적 사실은 모두 남긴 간결한 원시인 말투로 답합니다.

caveman: 프롬프트에 이미 '간결하게'가 있었기 때문에 스킬은 단어를 줄이지 못했고 토큰만 2.2배 사용했습니다

상황에 따라안전

Codex CLI · gpt-6-astra

21.7 / 30

스킬 없이 대비 향상폭: +0.00 · 상황에 따라 · 18회 실행

상황에 따라: 총점 21.7/30이 22점 미만, 향상폭 +0.00가 +1.0 미만. 추천이 되려면 총점 22/30, 출력 품질 3.5, 향상폭 +1.0이 필요합니다.

SOTA

통과

Codex로 테스트

커버 대상 Codex, Claude Code

Codex CLI 0.166 (SOTA 티어): 채점된 실행 18회. 여기서 통과하면 티어 규칙에 따라 Claude Code도 커버되지만, 두 번째 티어에 대해서는 아무것도 말해주지 않습니다.

점수

각 차원은 0~5점이며 여섯 차원을 더하면 30점 만점의 총점이 됩니다. 모든 차원에서 5가 가장 좋습니다. 비용 5는 저렴하고 빠름, 설치 5는 쉬움을 뜻합니다.

트리거 신뢰도
5.0
스킬 없이 대비 향상폭
2.0
출력 품질
4.7
토큰 및 시간 비용
1.0
설치 및 이식성
4.0
안전성
5.0

보안 리뷰

안전

정적 스캔: CRITICAL 0 / HIGH 0 / MEDIUM 0. 수동 검토: 네트워크가 차단된 샌드박스에서 실행 안전(발견 사항 없음, SKILL.md만 설치). 스캔이 깨끗하다고 해서 스킬이 안전하다는 증거는 아닙니다.

설치

npx skills@latest add JuliusBrussee/caveman --skill caveman

출처

고정 커밋: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4

테스트일: 2026-11-02

테스트한 과제

  • 무한 useEffect 루프 설명 — React 컴포넌트에 const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); }와 useEffect(() => { fetchData(); }, [fetchData]);가 있습니다. 컴포넌트가 끝없이 데이터를 다시 가져옵니다. 왜 그런지, 그리고 해결책은 무엇인가요? 간결하게…
  • 느린 Postgres 쿼리 수정 — Postgres: SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; 쿼리가 50M 행짜리 orders 테이블에서 몇 초씩 걸리며, 이 테이블에는 기본 키 인덱스만 있습니다. 어떻게 해야 할까요? 간결하게 답해 주세요. 토큰 비용은 제가 부담합니다.
  • 공유 브랜치에서 merge와 rebase — 우리 팀은 다른 사람들이 이미 가져간 공유 기능 브랜치에서 작업합니다. 최신 main을 가져오고 싶습니다. git merge와 git rebase 중 무엇을 써야 하며, 그 이유는 무엇인가요? 간결하게 답해 주세요. 토큰 비용은 제가 부담합니다.

장점

  • 스킬 이름을 언급하지 않았는데도 적용되었습니다. 스킬 사용군 실행 6/6회에서 스킬 파일을 읽었습니다.
  • 스킬 사용 시 높은 절대 품질: 4.67/5.

단점

  • 스킬 없이 실행한 경우와 비교해 측정 가능한 향상 없음(+0.00, 노이즈 범위 안).
  • 스킬 없이보다 토큰을 2.2배 사용합니다.
  • 테스트 참고: SKILL.md만 설치했고 훅과 설치 프로그램은 설치하지 않았습니다. 테스트 프롬프트에 'be brief' 트리거가 포함되어 있습니다.
  • 과제·그룹당 n=2이며, 약 1점 미만의 차이는 노이즈입니다.

리뷰

Codex CLI 0.166 (gpt-6-astra, low reasoning)을 Mac 테스트 머신에서 실행했고, 실행마다 새 임시 프로젝트와 임시 HOME/TMPDIR/캐시를 사용했습니다. 스킬 설치(스킬 사용군), 미설치(대조군), 미설치 상태에서 스킬의 핵심 요구사항만 한 문장으로 압축해 프롬프트에 덧붙인 경우(한 문장 프롬프트군)로 나눴으며, 과제·그룹당 2회씩 실행했습니다. 네트워크는 끄고 /tmp 쓰기는 차단했습니다. 프롬프트에는 스킬 이름을 언급하지 않았습니다(아래에 적은 경우 제외). 각 프롬프트는 기술 질문(무한 useEffect 루프, 느린 Postgres 쿼리, 공유 브랜치에서 merge와 rebase 중 선택)이며 'Be brief; I'm paying per token.'으로 끝납니다. 이 문구는 스킬 자체의 트리거 중 하나이고 대조군에도 같은 문장이 들어갑니다. 따라서 이 테스트는 '간결하게'라는 요청 위에 스킬이 무엇을 더하는지를 묻습니다.

3개 그룹 비교

그룹평균 점수 (0-5)실행당 토큰
스킬 없음4.6714k
한 문장 프롬프트4.514k
스킬 사용4.6731k

Codex CLI에서 18회 실행해 측정했고, LLM 심사 없이 규칙 기반 검사로 채점했습니다. 총점 21.7 / 30, 판정 상황에 따라.

참고: SKILL.md만 설치했고 훅과 설치 프로그램은 설치하지 않았습니다. 테스트 프롬프트에는 '간결하게' 트리거가 포함되어 있습니다.

판정: 상황에 따라 다름 (21.7 / 30). 출처: JuliusBrussee/caveman, skills/caveman, 커밋 9b68f7e에 고정. 설치: npx skills@latest add JuliusBrussee/caveman --skill caveman. 라이선스: MIT (저장소 LICENSE. 저장소의 훅과 설치 프로그램은 설치하거나 실행하지 않았습니다).

어떤 스킬인가

caveman 스킬입니다(저장소의 훅과 설치 프로그램은 설치하지 않았고 skills/caveman/SKILL.md만 사용). 간결한 답변 스타일입니다. 먼저 답하고, 인사말과 요약은 없애고, 짧은 단어를 쓰고, 관사는 생략하되 부정 표현은 절대 생략하지 않으며, 코드·경로·숫자·오류는 그대로 유지하고, 경고와 되돌릴 수 없는 작업은 평문 산문으로 설명합니다. 'caveman mode', 'be brief', 'less tokens' 같은 표현에서 발동합니다. 약 600단어의 Markdown이며 스크립트는 없습니다.

테스트 방법

Codex CLI 0.166(gpt-6-astra, 낮은 추론)을 Mac 테스트 머신에서 실행했고, 실행마다 새 임시 프로젝트와 임시 HOME/TMPDIR/캐시를 사용했습니다. 스킬을 설치한 경우(스킬 사용군), 설치하지 않은 경우(대조군), 스킬의 핵심 요구사항을 한 문장으로 압축해 프롬프트 끝에 붙인 경우(한 문장 프롬프트군)로 나눴고, 작업마다 각 군 2회씩 실행했습니다. 네트워크는 끄고 /tmp 쓰기는 차단했습니다. 프롬프트에는 스킬 이름을 전혀 언급하지 않았습니다(아래에 적은 표현은 예외).

각 프롬프트는 기술 질문 하나로, 끝에 '간결하게. 토큰 비용을 내고 있으니까.'가 붙습니다. 이 문장에는 스킬 자체 트리거 중 하나인 'be brief'가 들어 있으며, 대조군도 같은 문장을 받습니다. 따라서 이 테스트는 그냥 간결하게 해 달라는 요청 위에 스킬이 무엇을 더하는지를 묻습니다.

  1. 무한 useEffect 루프 설명 — React 컴포넌트에 const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); }와 useEffect(() => { fetchData(); }, [fetchData]);가 있습니다. 컴포넌트가 끝없이 다시 가져오기를 반복합니다. 이유와 해결법은 무엇인가요? 간결하게…
  2. 느린 Postgres 쿼리 수정 — Postgres: SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20;가 기본 키 인덱스만 있는 50M 행짜리 orders 테이블에서 몇 초씩 걸립니다. 어떻게 해야 하나요? 간결하게. 토큰 비용을 내고 있으니까.
  3. 공유 브랜치에서 merge 또는 rebase — 우리 팀은 다른 사람들이 이미 pull한 공유 기능 브랜치에서 작업합니다. 최신 main을 가져오고 싶습니다. git merge와 git rebase 중 무엇을 써야 하고, 왜인가요? 간결하게. 토큰 비용을 내고 있으니까.

채점은 프로그램 방식(숨은 테스트, 심어 둔 문제 탐지, 제약 조건 검사, 해당되는 경우 렌더링+OCR)으로 실행당 0~5점입니다. 점수를 결정한 LLM 심사자는 없습니다.

결과

세 번째 군에 전달한 한 문장 프롬프트: "간결하게 답하세요. 먼저 답하고, 인사말·군더더기·완곡한 표현·요약은 넣지 말고, 불필요한 관사는 생략하되 모든 기술적 사실과 코드, 숫자, 부정 표현은 정확히 유지하세요."

작업대조군 점수한 문장 프롬프트스킬 사용대조군 토큰한 문장 프롬프트 토큰스킬 사용 토큰스킬 읽음
t1-react-loop4.754.54.514k14k30k2/2
t2-pg-index5.05.05.014k14k34k2/2
t3-merge-rebase4.254.04.514k14k30k2/2

평균 점수: 스킬 없이 4.67, 스킬 사용 시 4.67(델타 +0.0). 실행당 토큰: 14k 대 31k(2.20배), 시간 12초 대 19초. 한 문장 프롬프트군: 4.5(한 문장 프롬프트 대비 스킬의 이득: +0.17, 스킬 없는 경우 대비 한 문장 프롬프트의 이득: -0.17). 한 문장 프롬프트는 실행당 14k 토큰을 쓰므로, 스킬은 한 문장 프롬프트의 2.20배 비용입니다.

실제로 있었던 일

  • 스킬이 없어도 간결하게 해 달라고 하면 에이전트는 이미 약 59단어(45〜70단어)로 답합니다. 스킬을 쓰면 52단어(39〜64단어), 한 문장 버전을 쓰면 54단어입니다. 7단어 차이는 실행 간 편차 범위 안입니다. 어떤 군도 군더더기 도입부나 마무리를 쓰지 않았고, 18개 답변 모두 코드와 명령, 핵심 사실을 유지했습니다.
  • 사실 보존율도 같았습니다. 모든 군에서 답변당 필수 기술 사실 5개 중 3〜5개를 유지했습니다(필수 사실 보존 비율: 대조군 87%, 한 문장 프롬프트 80%, 스킬 87%). 에이전트가 자주 빠뜨린 사실 하나(상태 업데이트가 컴포넌트를 다시 렌더링하고 효과를 다시 실행한다는 점)는 세 군 모두 똑같이 빠뜨렸습니다. '공유 브랜치를 rebase하지 말 것'이라는 요점은 우리 검사에서 대조군 2회 중 1회, 한 문장 프롬프트 2회 중 0회, 스킬 2회 중 1회 답변과 일치했습니다. 우리가 읽은 답변은 모두 merge를 권하고 rebase는 비공개 또는 미게시 작업에 남겨 두었으므로, 이런 불일치는 일부 표현 문제입니다.
  • 프롬프트에 스킬의 트리거 문구가 들어 있어 스킬은 6/6 실행에서 읽혔습니다. 바로 답할 수 있는 질문에 답하기 전에 스킬을 로드하고 이를 읽기 위해 명령 두 개를 실행하므로, 실행당 토큰이 14k에서 31k(2.2배)로 늘어납니다. 한 문장 프롬프트는 대조군과 같은 비용입니다.
  • 답변을 읽어 보면 스타일은 같습니다. 먼저 답하고, 단편적인 문장을 쓰고, 짧은 코드 블록을 넣습니다. 스킬 답변과 대조군 답변을 구분할 수 없었습니다.

항목별 점수

항목점수이유
1_output_quality4.67

스킬 사용 시 평균 4.67/5점(프로그램 검사, 작업별 표 참조).

2_lift_vs_no_skill2.0

스킬 없이 4.67점 대비 +0.00점(작업당 n=2, 약 1점 미만의 차이는 노이즈).

3_trigger5.0스킬 사용군 6/6 실행에서 스킬 파일이 읽힘.
4_instructions_portability4

평범한 Markdown 규칙. 일부 규칙은 저장소의 훅을 설치해야만 존재하는 훅과 상태 표시줄( /caveman status)을 언급합니다.

5_efficiency1토큰 2.20배(실행당 31k 대 14k), 시간 1.53배(19초 대 12초).
6_safety_hygiene5

스타일 규칙만 담은 단일 SKILL.md(전문 확인). 저장소의 훅/설치 프로그램은 설치하거나 검토하지 않았습니다.

이 테스트의 한계

  • 이 테스트는 명시적인 '간결하게' 요청 위에서 스킬을 측정합니다. 스킬의 실제 용도는 지속성에 있습니다. 한 세션 내내 켜져 있어 매번 요청할 필요가 없는데, 이 세 질문 테스트는 그 점을 다루지 않습니다.
  • 여기서 센 토큰 비용은 대화당 한 번 스킬을 로드하는 비용입니다. 답변마다 몇 단어를 아끼는 긴 세션에서는 본전을 뽑을 수도 있지만, 그 부분은 측정하지 않았습니다.
  • 세 가지 기술 질문에 대한 채팅 답변만 확인했습니다. 커밋 메시지, 코드 리뷰 댓글, 긴 에이전트 세션(스킬에 다른 규칙이 있는 경우)은 테스트하지 않았습니다.
  • 저장소의 훅, 상태 표시줄, 다른 caveman 스킬은 설치하거나 실행하지 않았습니다.
  • 작업·군당 n = 2: 약 1점 미만의 차이는 노이즈입니다.
  • 규칙 기반 채점은 검사가 볼 수 있는 것만 측정합니다. 취향이나 결과가 최선인지는 판단할 수 없습니다.

보안

security.md를 참조하세요. 스캔: CRITICAL 0 / HIGH 0 / MEDIUM 0. 판정: 실행해도 안전(네트워크 비활성 샌드박스). 깨끗한 스캔 결과가 스킬의 안전성을 증명하지는 않습니다.

결론

단순한 '간결하게' 요청 위에서 caveman은 측정 가능한 수준으로 답변을 더 짧게 만들거나 정확도를 떨어뜨리지 않았고, 스킬을 로드하자 짧은 답변의 토큰이 두 배가 되었습니다. 세션 내내 매번 요청하지 않고 에이전트를 간결하게 유지하고 싶다면 이 스킬이 그 역할을 합니다. 질문 하나에서만 간결함이 필요하다면 프롬프트에 그렇게 말하면 됩니다.

트랜스크립트

실행 로그: caveman (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
열: 작업, 그룹-회차, 점수(0-5), 토큰, 초, 통과한 검사, 에이전트가 연 스킬 파일.

t1-react-loop control-1: 점수 5.0, 토큰 14312, 초 16.3, 검사 3/3, 연 파일 없음
t1-react-loop control-2: 점수 4.5, 토큰 14318, 초 10.7, 검사 3/3, 연 파일 없음
t1-react-loop oneliner-1: 점수 4.5, 토큰 14348, 초 16.9, 검사 3/3, 연 파일 없음
t1-react-loop oneliner-2: 점수 4.5, 토큰 14341, 초 8.7, 검사 3/3, 연 파일 없음
t1-react-loop treatment-1: 점수 4.5, 토큰 30174, 초 21.5, 검사 3/3, 연 파일 caveman
t1-react-loop treatment-2: 점수 4.5, 토큰 30067, 초 26.2, 검사 3/3, 연 파일 caveman
t2-pg-index control-1: 점수 5.0, 토큰 14285, 초 10.0, 검사 3/3, 연 파일 없음
t2-pg-index control-2: 점수 5.0, 토큰 14301, 초 10.5, 검사 3/3, 연 파일 없음
t2-pg-index oneliner-1: 점수 5.0, 토큰 14362, 초 12.3, 검사 3/3, 연 파일 없음

18회 실행, 아티팩트 3개

샘플 출력

SOTA · With the skill: final message (t1-react-loop, run 1, Codex)

`fetchData` is a new function every render. The effect runs, `setItems` triggers another render, and the cycle repeats. Move the function inside the effect: ```jsx useEffect(() => { async function fetchData() { const r = await fetch('/api/items'); setItems(await r.json()); } fetchData(); }, []); ``` If needed elsewhere, stabilize `fetchData` with `useCallback` and its actual dependencies.

Pro 보기