agentsclimarketplace

Autoresearch

Skill Dannykkh/skill-olympus/skills/autoresearch

Twelve Greek gods. One command. A working SaaS. 98 skills + 49 agents + 13 hooks for Claude Code + Codex CLI + Gemini CLI. Cross-CLI persistent memory, zero-interaction full pipeline (design → build → inspect → test → ship).

Install
npx -y skills add Dannykkh/skill-olympus --skill autoresearch

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Karpathy의 autoresearch 패턴을 스킬 프롬프트 최적화에 적용. 체크리스트(3~6개 예/아니오 기준) 기반 hill-climbing 루프로 SKILL.md를 자동 개선합니다. 한 번에 하나만 바꾸고, 채점하고, 유지하거나 되돌립니다. 95%+ × 3회 연속 달성 시 종료. /autoresearch로 실행.

SKILL.md

20.2 KB, as published. Nobody here has run it

Autoresearch

Karpathy의 autoresearch — 한 번에 하나만 바꾸고, 채점하고, 유지하거나 되돌린다. 레시피를 고쳐서 앞으로 만드는 요리를 전부 좋게 만드는 것.


핵심 원리

점수를 매길 수 있으면, autoresearch할 수 있다.
— Ole (@unclejobs)
원본 (Karpathy ML)이 스킬 (프롬프트 최적화)
train.py 수정SKILL.md 수정
program.md 지침이 SKILL.md = 루프 지침
val_bpb 메트릭체크리스트 점수 (pass/total × 100)
results.tsvautoresearch-log.md 변경 로그
git commit/reset유지/되돌림

사용법

# 기본 — 단일 스킬 최적화
/autoresearch humanizer

# 옵션 지정
/autoresearch humanizer --input sample.md --rounds 20

# 체크리스트 파일 직접 지정
/autoresearch humanizer --checklist my-checklist.md

# 스캔 모드 — 전체 스킬 품질 진단
/autoresearch --scan

# 스캔 후 바로 최적화
/autoresearch --scan --auto

인자

인자필수기본값설명
<skill-name>개선할 대상 스킬 이름 (scan 모드 시 생략)
--scan전체 스킬 품질 스캔 모드
--autoscan 후 최하위 스킬부터 자동 최적화 시작
--input자동 생성테스트용 샘플 입력. 파일 경로 또는 인라인 텍스트
--checklist대화로 수집체크리스트 파일 경로 (.md)
--rounds20최대 라운드 수
--target95목표 점수 (%)
--streak3연속 달성 횟수

Scan 모드 (--scan)

어떤 스킬을 돌려야 하는지 모르면 scan부터. 96개 스킬을 빠르게 훑어서 우선순위 리스트를 뽑아준다.

사용법

# 전체 스캔
/autoresearch --scan

# 스캔 + 최하위부터 자동 최적화
/autoresearch --scan --auto

Scan 워크플로우

1. 스킬 목록 수집
   └─ skills/*/SKILL.md를 Glob으로 전부 수집

2. 각 스킬에 Quick Health Check (6개 항목, 예/아니오)
   └─ skill-judge의 D1~D8 차원을 빠른 이진 질문으로 압축:

   ┌─────────────────────────────────────────────────────────────┐
   │ Q1 [Knowledge Delta]                                        │
   │    SKILL.md에 Claude가 모르는 전문 지식이 있는가?            │
   │    (결정 트리, 비직관적 트레이드오프, 경험 기반 엣지 케이스)  │
   │                                                             │
   │ Q2 [Anti-Patterns]                                          │
   │    구체적인 NEVER 리스트(하지 말 것 + 이유)가 있는가?        │
   │                                                             │
   │ Q3 [Examples]                                                │
   │    좋은 예시 또는 나쁜 예시가 스킬 안에 포함돼 있는가?       │
   │                                                             │
   │ Q4 [Description Quality]                                    │
   │    frontmatter description이 WHAT + WHEN + KEYWORDS를       │
   │    모두 포함하는가?                                          │
   │                                                             │
   │ Q5 [Progressive Disclosure]                                 │
   │    SKILL.md가 500줄 이하이고, 무거운 콘텐츠가               │
   │    references/로 분리돼 있는가?                              │
   │                                                             │
   │ Q6 [Actionable Instructions]                                │
   │    지시가 구체적인가? ("좋은 코드를 작성하라" ❌ vs          │
   │    "함수는 20줄 이내, 단일 책임" ✅)                         │
   └─────────────────────────────────────────────────────────────┘

3. 점수 산출
   └─ 각 항목 PASS=1, FAIL=0
   └─ 점수 = (PASS / 6) × 100

4. 등급 분류 + 정렬

   | 점수 | 등급 | 의미 |
   |------|------|------|
   | 0~33% | 🔴 낮음 | 즉시 autoresearch 필요 |
   | 34~66% | 🟡 보통 | 개선 여지 있음 |
   | 67~100% | 🟢 양호 | 유지 |

Scan 출력 형식

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Autoresearch Skill Scan — 96 skills
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🔴 낮음 (즉시 개선 필요)
  17%  domain-name-brainstormer  — 예시 없음, 지시 모호, NEVER 리스트 없음
  17%  meme-factory              — 전문 지식 없음, 예시 없음
  33%  web-to-markdown           — description 불완전, 예시 없음

🟡 보통 (개선 여지)
  50%  marp-slide               — NEVER 리스트 없음, 지시 일부 모호
  50%  commit-work              — 예시 없음, 엣지 케이스 미비
  67%  naming-analyzer          — 예시 풍부하나 NEVER 리스트 없음

🟢 양호
  83%  humanizer                — 예시 필요
  83%  zephermine               — description 보강 여지
 100%  skill-judge              — 모든 항목 통과

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  🔴 3개 | 🟡 3개 | 🟢 3개
  추천: domain-name-brainstormer부터 /autoresearch 실행
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Scan + skill-judge 연동

scan의 Quick Health Check는 skill-judge의 경량 버전입니다.

skill-judge 차원Scan 질문매핑
D1: Knowledge Delta (20pt)Q1: 전문 지식 존재?핵심 차원 → 직접 매핑
D3: Anti-Pattern Quality (15pt)Q2: NEVER 리스트?구체적 안티패턴 유무
D8: Practical Usability (15pt)Q3: 예시 포함?예시 = 실용성 핵심
D4: Spec Compliance (15pt)Q4: Description 품질?WHAT+WHEN+KEYWORDS
D5: Progressive Disclosure (15pt)Q5: 500줄 이하?토큰 효율
D6: Freedom Calibration (15pt)Q6: 지시 구체성?모호 vs 구체

심층 평가가 필요하면: scan 결과에서 특정 스킬을 골라 /skill-judge <skill-name>으로 120점 만점 정밀 평가 가능.

--scan --auto 모드

scan 후 자동으로 최하위 스킬부터 순서대로 autoresearch를 실행합니다.

1. --scan 실행 → 우선순위 리스트 생성
2. 🔴 등급 스킬 중 최하위 선택
3. 해당 스킬에 대해:
   └─ scan에서 FAIL된 항목을 체크리스트로 자동 생성
   └─ 스킬 유형에 맞는 테스트 입력 자동 생성
   └─ Hill-Climbing 루프 실행
4. 완료 후 다음 🔴 스킬로 이동
5. 🔴 전부 처리 후 → 사용자에게 "🟡 스킬도 진행할까요?" 질문

자동 체크리스트 생성 규칙: scan에서 FAIL된 Q1~Q6 항목을 해당 스킬의 체크리스트로 변환합니다.

FAIL된 항목 → 체크리스트 변환 예시:
Q1 FAIL → "스킬 출력에 Claude가 기본적으로 모르는 전문적 판단이 반영됐는가?"
Q2 FAIL → "구체적인 '하지 마라' 사례가 출력에 포함됐는가?"
Q3 FAIL → "좋은 예시/나쁜 예시가 출력 품질을 좌우하는가?"
Q6 FAIL → "지시가 모호하지 않고 측정 가능한 기준을 제시하는가?"

FAIL 항목이 3개 미만이면 해당 스킬 유형에 맞는 범용 체크리스트를 보충합니다.


워크플로우 (단일 스킬 최적화)

Phase 0: 준비

1. 대상 스킬 확인
   └─ skills/<skill-name>/SKILL.md 존재 확인
   └─ 없으면 에러 → 종료

2. 체크리스트 확보 (--checklist 없으면 현재 CLI의 질문 방식으로 사용자에게 질문)
   └─ 질문: "이 스킬의 '잘 됐는지' 기준을 알려주세요. 예/아니오로 답할 수 있는 질문 3~6개."
   └─ 6개 초과 시 경고: "6개 넘으면 게이밍이 시작됩니다. 가장 중요한 6개만 골라주세요."

3. 테스트 입력 확보 (--input 없으면)
   └─ 스킬 유형에 맞는 샘플 자동 생성
   └─ 글쓰기 스킬: 의도적으로 AI스러운 샘플 텍스트
   └─ 코드 스킬: 대표적인 코드 스니펫
   └─ 설계 스킬: 간단한 기능 요구사항

4. 백업 생성
   └─ SKILL.md 원본을 .autoresearch/backup/<skill-name>-original.md로 복사
   └─ git stash 또는 별도 백업 (되돌림 안전장치)

5. 로그 파일 초기화
   └─ .autoresearch/<skill-name>/autoresearch-log.md 생성

Phase 1: 기준점 측정 (Baseline)

1. 대상 스킬의 SKILL.md를 프롬프트로 사용하여 테스트 입력 처리
   └─ Agent 서브에이전트로 스킬 실행 (격리된 컨텍스트)

2. 출력물을 체크리스트로 채점
   └─ 각 항목: PASS (1) 또는 FAIL (0)
   └─ 점수 = (PASS 수 / 전체 항목 수) × 100
   └─ ⚠️ Eval 격리: 출력물만 보고 채점. 프롬프트를 보면 관대해짐.

3. 기준점 기록
   └─ 로그에 "Baseline: 56% (3/5 pass)" 기록

Phase 2: Hill-Climbing 루프

LOOP (라운드 1 ~ --rounds):

  ┌─ ① 약점 분석
  │  └─ 가장 최근 FAIL 항목 중 하나 선택
  │  └─ 왜 실패했는지 분석 (출력물 vs 체크리스트 항목)
  │
  ├─ ② Mutation 전략 선택 (하나만)
  │  └─ add_counterexample: 실패 케이스를 스킬에 "이렇게 하지 마라" 예시로 삽입
  │  └─ tighten_language: 모호한 지시를 구체적으로 강화
  │  └─ add_constraint: 형식/길이/구조 제약 추가
  │  └─ add_negative_example: "나쁜 예시 vs 좋은 예시" 쌍 삽입
  │  └─ add_good_example: 이상적인 출력 예시 직접 삽입
  │  └─ remove_bloat: 불필요한 지시 제거 (토큰 절약)
  │
  ├─ ③ SKILL.md 수정 (딱 하나만 변경)
  │  └─ Edit 도구로 최소 변경
  │  └─ 변경 내용을 로그에 기록
  │
  ├─ ④ 재실행 + 채점
  │  └─ 동일한 테스트 입력으로 스킬 재실행
  │  └─ 체크리스트로 재채점
  │
  ├─ ⑤ 판정
  │  ├─ 점수 상승 → ✅ 유지 (Keep)
  │  │  └─ 로그: "R3: ✅ Keep — add_constraint '20단어 제한' (75% → 83%)"
  │  │
  │  ├─ 점수 동일 → ✅ 유지 (중립 변경은 유지 — 로컬 옵티마 탈출)
  │  │  └─ 로그: "R4: ✅ Keep (neutral) — tighten_language (83% → 83%)"
  │  │
  │  └─ 점수 하락 → ❌ 되돌림 (Revert)
  │     └─ SKILL.md를 이전 상태로 복원
  │     └─ 로그: "R5: ❌ Revert — remove_bloat → CTA 약화 (83% → 67%)"
  │
  └─ ⑥ 종료 조건 확인
     └─ 목표 점수(--target) 이상이 --streak회 연속? → Phase 3로 (success)
     └─ 최대 라운드 초과? → Phase 3로 (exhausted — 목표 미달 종료, success 아님)
        └─ 최종 점수 < baseline이면 SKILL.md를 원본으로 전량 되돌림 (개악 방지)
     └─ 아니면 → 다음 라운드

Phase 3: 완료 + 산출물

1. 최종 SKILL.md 저장 (이미 수정된 상태)

2. 변경 로그 완성 — .autoresearch/<skill-name>/autoresearch-log.md:
   ┌──────────────────────────────────────────────┐
   │ # Autoresearch Log: humanizer                │
   │ Target: 95% × 3 streak                       │
   │ Baseline: 56% (3/5)                          │
   │ Final: 92% (4.6/5 avg over 3 runs)           │
   │ Rounds: 7 (4 kept, 1 neutral, 2 reverted)    │
   │                                              │
   │ ## Checklist                                  │
   │ 1. AI 유행어가 없는가? ................. ✅   │
   │ 2. 문장이 20단어 이내인가? ............ ✅   │
   │ 3. 능동태를 사용했는가? ............... ✅   │
   │ 4. em dash 2개 이하인가? .............. ✅   │
   │ 5. 개성이 느껴지는가? ................. ⚠️   │
   │                                              │
   │ ## Rounds                                     │
   │ R1: ✅ Keep — add_negative_example 유행어     │
   │     (56% → 75%)                               │
   │ R2: ✅ Keep — tighten_language 능동태          │
   │     (75% → 75%, neutral)                      │
   │ R3: ❌ Revert — add_constraint 15단어 제한    │
   │     (75% → 50%, CTA 약화)                     │
   │ R4: ✅ Keep — add_good_example 문장 분리      │
   │     (75% → 92%)                               │
   │ R5-7: 92%, 92%, 92% → 3 streak 달성 🏁       │
   │                                              │
   │ ## Mutation Stats                             │
   │ add_negative_example: 1/1 (100%)              │
   │ tighten_language:     1/1 (100%, neutral)     │
   │ add_constraint:       0/1 (0%)                │
   │ add_good_example:     1/1 (100%)              │
   │                                              │
   │ ## Diff Summary                               │
   │ +3 lines: 유행어 금지 목록                     │
   │ +2 lines: 능동태 변환 규칙                     │
   │ +4 lines: 좋은 예시 삽입                       │
   │ -0 lines: (되돌림으로 제거됨)                  │
   └──────────────────────────────────────────────┘

3. 사용자에게 결과 요약 출력

독립 채점 게이트 (034 — 자기채점 오버피팅 방지)

Hill-climbing은 생성·채점을 같은 행위자가 수행하므로, 최종 버전이 자기 체크리스트에만 과적합했을 수 있다. streak 달성으로 완료를 선언하기 전, 다른 모델 패밀리의 독립 채점자(Agent 도구로 다른 모델, 또는 gemini/Codex /review)에게 최종 SKILL.md의 출력물을 동일 체크리스트로 1회 재채점시킨다.

  • 최적화에 쓴 점수(라운드 신호)와 합격 판정(독립 채점)을 분리한다 — 같은 점수로 고치고 같은 점수로 승인하지 않는다.
  • 독립 채점이 목표 미달이면 streak는 무효다. 격차가 크면 보수적으로 낮은 쪽 점수를 채택하고 라운드를 더 돈다.
  • 다른 패밀리가 없으면 single-model 결과로 라벨하고 "독립 검증 안 됨"을 로그에 명시한다 (거짓 합격 금지).

체크리스트 작성 가이드

규칙

규칙이유
3~6개3개 미만 → 허점 발생. 6개 초과 → 게이밍 시작
예/아니오만1~7점 척도 쓰면 "기술적으로 5점"인 쓰레기가 나옴
구체적으로"좋은 글인가?" ❌ → "유행어가 없는가?" ✅
독립적으로항목 간 상충하지 않아야 함

좋은 체크리스트 예시

글쓰기 스킬용:

1. "혁신적", "획기적", "탁월한" 같은 AI 유행어가 없는가?
2. 모든 문장이 20단어 이내인가?
3. 수동태 대신 능동태를 사용했는가?
4. em dash(—)를 2개 이하로 사용했는가?
5. 첫 문장이 구체적인 고충이나 상황을 짚는가?

설계 스킬용:

1. API 명세에 에러 응답 코드(4xx, 5xx)가 정의됐는가?
2. 비기능 요구사항(성능, 보안)이 포함됐는가?
3. 컴포넌트 간 의존성 방향이 명시됐는가?
4. 데이터 스키마가 정규화(3NF 이상)됐는가?

코드 생성 스킬용:

1. 타입이 any 없이 구체적으로 지정됐는가?
2. 에러 처리가 try-catch로 감싸졌는가?
3. 함수가 단일 책임을 지키는가? (20줄 이내)
4. import 경로가 절대 경로인가?

제약 사항

반드시 지킬 것

#규칙
1한 번에 하나만 변경. 두 가지를 동시에 바꾸면 뭐가 효과 있었는지 모름
2Eval 격리. 채점 시 SKILL.md(프롬프트)를 보지 말 것. 출력물만 보고 판단
3되돌림은 즉시. 점수가 떨어지면 고민하지 말고 바로 되돌림
4같은 테스트 입력 사용. 입력이 바뀌면 공정한 비교 불가
5로그는 매 라운드 기록. 건너뛰면 변경 로그의 가치가 사라짐

하지 말 것

#금지 사항이유
1체크리스트 7개 이상게이밍 시작 — 시험 답만 외우는 학생
21~7점 슬라이딩 척도"기술적 5점" 쓰레기 양산
3한 번에 여러 변경어떤 변경이 효과인지 구분 불가
4프롬프트 전체 재작성Hill climbing이 아니라 random restart
5테스트 입력 중간 변경점수 비교의 기준이 무너짐

Mutation 전략 상세

전략설명성공률*언제 사용
add_counterexample실패 케이스를 "이렇게 하지 마라" 예시로 삽입높음특정 안티패턴이 반복될 때
tighten_language"좋은 글을 써라" → "능동태, 20단어 이내, 구체적 숫자 포함"높음지시가 모호할 때
add_constraint형식/길이/구조 제약 추가중간출력이 산만할 때
add_negative_example"나쁜 예시 → 좋은 예시" 쌍 삽입중간경계가 불분명할 때
add_good_example이상적인 출력 예시 삽입중간기대 수준이 명확할 때
remove_bloat불필요한 지시 삭제낮음토큰 과다, 지시 충돌 시

*성공률은 Balu Kosuri의 14-cycle 실험 기준 참고치

전략 선택 우선순위

1. 실패 항목 분석 → 원인이 "안티패턴 반복"이면 → add_counterexample
2. 원인이 "지시가 모호"이면 → tighten_language
3. 원인이 "형식 이탈"이면 → add_constraint
4. 원인이 "경계 불명확"이면 → add_negative_example
5. 위 전략이 이미 시도됐으면 → add_good_example
6. 점수가 정체(5 라운드 이상 변화 없음)이면 → remove_bloat (정체 탈출)

산출물 파일 구조

.autoresearch/
├── scan-report.md                  # --scan 결과 (전체 스킬 품질 리포트)
├── backup/
│   └── <skill-name>-original.md    # 원본 백업
└── <skill-name>/
    └── autoresearch-log.md         # 변경 로그 + 점수 히스토리

관련 스킬

스킬관계
skill-judge스킬 품질 평가 (1회성) — autoresearch는 평가 + 수정 + 반복
humanizer대표적인 최적화 대상 (글쓰기 스킬)
auto-continue-loop자율 루프 인프라 — autoresearch는 자체 루프 보유
manage-skills스킬 관리 — autoresearch는 스킬 개선

레퍼런스

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.