review-animations (emilkowalski/skills)
엄격한 완성도 기준으로 애니메이션과 모션 코드를 리뷰하고 약한 부분을 기본적으로 지적합니다.
review-animations: 풀 리퀘스트 모션 리뷰에서 심어 둔 문제를 찾아 정확한 수정안을 내놓지만(대조군 2.9, 스킬 4.4, 한 문장 프롬프트 4.9) 토큰은 1.2배 사용합니다. 체크리스트를 한 문장으로 쓴 프롬프트가 더 좋은 성적을 냅니다
Codex CLI · gpt-6-astra
24.9 / 30
스킬 없이 대비 향상폭: +1.52 · 추천 · 18회 실행
추천: 총점 24.9/30이 22점 이상, 출력 품질 4.4가 3.5 이상, 향상폭 +1.52가 +1.0 이상입니다.
SOTA
통과Codex로 테스트
커버 대상 Codex, Claude Code
Codex CLI 0.166 (SOTA 티어): 채점된 실행 18회. 여기서 통과하면 티어 규칙에 따라 Claude Code도 커버되지만, 두 번째 티어에 대해서는 아무것도 말해주지 않습니다.
점수
각 차원은 0~5점이며 여섯 차원을 더하면 30점 만점의 총점이 됩니다. 모든 차원에서 5가 가장 좋습니다. 비용 5는 저렴하고 빠름, 설치 5는 쉬움을 뜻합니다.
- 트리거 신뢰도
- 5.0
- 스킬 없이 대비 향상폭
- 3.5
- 출력 품질
- 4.4
- 토큰 및 시간 비용
- 4.0
- 설치 및 이식성
- 4.0
- 안전성
- 4.0
보안 리뷰
안전정적 스캔: CRITICAL 0 / HIGH 0 / MEDIUM 0. 수동 검토: 네트워크가 차단된 샌드박스에서 실행 안전(발견 사항 없음). 스캔이 깨끗하다고 해서 스킬이 안전하다는 증거는 아닙니다.
설치
npx skills@latest add emilkowalski/skills --skill review-animations
고정 커밋: a81dbca07f2217b7103e510c0f13f8d5b017afc9
테스트일: 2026-11-02
테스트한 과제
- 모션 diff 리뷰 — 병합 전에 change.diff의 애니메이션 변경 사항을 리뷰하세요. 파일은 수정하지 마세요.
- 토스트 규칙만 리뷰 — change.diff에서 .toast 애니메이션 규칙만 리뷰하세요. 파일은 수정하지 마세요.
- 병합 판정 — change.diff의 애니메이션 변경 사항을 그대로 병합해도 될까요? 먼저 답하고, 그다음 이유를 설명하세요. 파일은 수정하지 마세요.
장점
- 스킬 없이보다 평균 점수를 2.86에서 4.38로 끌어올렸습니다(+1.52).
- 스킬 이름을 언급하지 않았는데도 적용되었습니다. 스킬 사용군 실행 6/6회에서 스킬 파일을 읽었습니다.
단점
- 한 문장 프롬프트는 4.93점, 스킬 사용은 4.38점(-0.55).
- 과제·그룹당 n=2이며, 약 1점 미만의 차이는 노이즈입니다.
리뷰
Codex CLI 0.166 (gpt-6-astra, low reasoning)을 전용 Windows 테스트 PC에서 실행했고, 실행마다 새 임시 프로젝트와 임시 HOME/TMPDIR/캐시를 사용했습니다. 스킬 설치(스킬 사용군), 미설치(대조군), 미설치 상태에서 스킬의 핵심 요구사항만 한 문장으로 압축해 프롬프트에 덧붙인 경우(한 문장 프롬프트군)로 나눴으며, 과제·그룹당 2회씩 실행했습니다. 네트워크는 끄고 /tmp 쓰기는 차단했습니다. 프롬프트에는 스킬 이름을 언급하지 않았습니다(아래에 적은 경우 제외). 애니메이션을 추가하면서 문제 7개를 심어 둔 change.diff를 준비했습니다. 과제는 병합 전에 diff 전체를 리뷰하기, 토스트 규칙만 리뷰하기, '그대로 병합해도 될까?'에 답하기(먼저 답하고 그다음 이유)입니다. 프롬프트에는 어떤 규칙도 언급하지 않았습니다. 한 문장 프롬프트는 체크리스트를 한 문장으로 정리하고 정확한 대체 코드를 요구합니다.
3개 그룹 비교
| 그룹 | 평균 점수 (0-5) | 실행당 토큰 |
|---|---|---|
| 스킬 없음 | 2.86 | 53k |
| 한 문장 프롬프트 | 4.93 | 48k |
| 스킬 사용 | 4.38 | 63k |
Codex CLI에서 18회 실행해 측정했고, LLM 심사 없이 규칙 기반 검사로 채점했습니다. 총점 24.9 / 30, 판정 추천.
판정: 추천 (24.9 / 30). 출처: emilkowalski/skills, skills/review-animations, 커밋 a81dbca에 고정. 설치: npx skills@latest add emilkowalski/skills --skill review-animations. 라이선스: MIT(저장소 LICENSE).
무엇인가
emilkowalski/skills의 review-animations 스킬입니다. diff의 애니메이션 변경을 검토하는 체크리스트입니다. 기본적으로 ease-in/ease-in-out UI 곡선, transition: all, scale(0) 시작, 레이아웃 속성 애니메이션, 빈도 높은 동작의 애니메이션, 효과 없는 스태거, 누락된 reduced-motion, 300 ms 초과 지속 시간을 지적하고 정확한 대체 값을 함께 제시합니다.
테스트 방법
Codex CLI 0.166(gpt-6-astra, 낮은 추론)을 전용 Windows 테스트 PC에서 실행했고, 실행마다 새 임시 프로젝트와 임시 HOME/TMPDIR/캐시를 사용했습니다. 스킬을 설치한 스킬 사용군, 스킬이 없는 대조군, 스킬 없이 핵심 요구사항을 한 문장으로 압축해 프롬프트 끝에 붙인 한 문장 프롬프트군으로 나눴으며, 작업·군당 2회 실행, 네트워크 차단, /tmp 쓰기 차단 조건이었습니다. 프롬프트에는 스킬 이름을 전혀 언급하지 않았습니다(아래에 적은 표현 제외).
애니메이션을 추가하면서 문제 7개를 심어 둔 change.diff입니다. 작업은 병합 전 diff 전체 리뷰, 토스트 규칙만 리뷰, '이대로 병합해도 될까요?'에 답하기(먼저 답하고 그다음 이유)입니다. 프롬프트에는 어떤 규칙도 언급하지 않습니다. 한 문장 프롬프트는 체크리스트를 한 문장으로 정리하고 정확한 대체 값을 요구합니다.
- 모션 diff 리뷰 — 병합하기 전에 change.diff의 애니메이션 변경을 리뷰하세요. 파일은 변경하지 마세요.
- 토스트 규칙만 리뷰 — change.diff의 .toast 애니메이션 규칙만 리뷰하세요. 파일은 변경하지 마세요.
- 병합 판정 — change.diff의 애니메이션 변경을 지금 그대로 병합해도 될까요? 먼저 답하고, 그다음 이유를 설명하세요. 파일은 변경하지 마세요.
채점은 프로그램 방식(숨은 테스트/심어 둔 문제 탐지/제약 조건 검사/해당되는 경우 렌더링+OCR)으로 진행하며 실행당 0~5점입니다. 어떤 점수도 LLM 심사자가 결정하지 않았습니다.
결과
세 번째 군에 제공한 한 문장 프롬프트: "높은 완성도 기준으로 모션 코드를 리뷰하고 기본적으로 다음을 지적하세요. ease-in 또는 ease-in-out UI 곡선, transition: all, scale(0) 시작, 레이아웃 속성 애니메이션, 빈도 높은 동작의 애니메이션, 효과 없는 스태거, 누락된 reduced-motion, 300 ms 초과 지속 시간. 각 발견에 정확한 대체 값을 제시하세요."
| 작업 | 대조군 점수 | 한 문장 프롬프트 | 스킬 사용 | 대조군 토큰 | 한 문장 토큰 | 스킬 사용 토큰 | 스킬 읽음 |
|---|---|---|---|---|---|---|---|
| t1-review-diff | 1.53 | 4.79 | 3.67 | 56k | 56k | 77k | 2/2 |
| t2-toast-only | 2.22 | 5.0 | 5.0 | 47k | 39k | 55k | 2/2 |
| t3-verdict | 4.82 | 5.0 | 4.46 | 55k | 48k | 55k | 2/2 |
평균 점수: 스킬 없음 2.86 vs 스킬 사용 4.38(델타 +1.52). 실행당 토큰: 53k vs 63k(1.18배), 시간 30초 vs 32초. 한 문장 프롬프트군: 4.93(한 문장 프롬프트 대비 스킬의 이득: -0.55, 스킬 없음 대비 한 문장 프롬프트의 이득: +2.08). 한 문장 프롬프트는 실행당 48k 토큰이므로 스킬 비용은 한 문장 프롬프트의 1.30배입니다.
무슨 일이 있었나
- 대조군 2.86, 스킬 4.38, 한 문장 4.93(각 6회). 안내가 없을 때 diff 전체 리뷰는 한 실행에서 심어 둔 문제 7개 중 3개, 다른 실행에서 1개를 찾았고, 두 실행 모두 대체 값을 제시하지 않았습니다.
- 토스트만 리뷰: 대조군은 두 실행 모두
transition: all을 놓치고 정확한 수정을 제시하지 못했습니다(2.2). 스킬과 한 문장 프롬프트는 네 실행 모두 5.0이었습니다. - diff 전체 리뷰: 스킬은 7개 중 5~6개를 찾았지만 일관성이 없었습니다(4.18과 3.16). 한 실행에서는 빈도 높은 명령 팔레트를, 다른 실행에서는 효과 없는 스태거를 놓쳤습니다. 한 문장 프롬프트는 5.0과 4.59를 받았습니다.
- 판정 작업: 대조군도 이미 근거가 탄탄한 답을 냈고(5.0과 4.64), 스킬은 4.64와 4.29, 한 문장 프롬프트는 두 실행 모두 5.0이었습니다.
- 토큰: 실행당 스킬 63k, 한 문장 48k, 대조군 53k(대조군의 1.19배, 한 문장의 1.3배). 스킬은 스킬 사용군 6/6 실행에서 읽혔습니다.
항목별 점수
| 항목 | 점수 | 이유 |
|---|---|---|
| 1_출력_품질 | 4.38 | 스킬 사용 시 평균 4.38/5(프로그램 검사, 작업별 표 참고). |
| 2_스킬_없음_대비_향상 | 3.52 | 스킬 없음 2.86 대비 +1.52점(작업당 n=2, 약 1점 미만은 노이즈). |
| 3_트리거 | 5.0 | 스킬 사용군 6/6 실행에서 스킬 파일을 읽었습니다. |
| 4_지침_이식성 | 4 | SKILL.md 체크리스트만 있습니다. |
| 5_효율성 | 4 | 토큰 1.18배(실행당 63k vs 53k), 시간 1.06배(32초 vs 30초). |
| 6_안전성_및_위생 | 4 | 서술형 문서만 사용, security.md 참고. |
이 테스트의 한계
- 리뷰 텍스트에 대한 탐지 검사로, 심어 둔 항목 중 찾은 것과 구체적 값의 존재 여부를 봤습니다. 설명의 품질은 판단하지 않았습니다.
- 한 문장 프롬프트는 스킬 자체 체크리스트를 거의 그대로 옮긴 것입니다.
- 픽스처 diff 하나, 셀당 n=2.
- 작업·군당 n=2: 약 1점 미만의 차이는 노이즈입니다.
- 규칙 기반 채점은 검사가 볼 수 있는 것만 측정하며, 취향이나 결과가 최선인지는 판단하지 못합니다.
보안
security.md를 참고하세요. 스캔: CRITICAL 0 / HIGH 0 / MEDIUM 0. 판정: 실행해도 안전(네트워크 차단 샌드박스). 깨끗한 스캔 결과가 스킬의 안전성을 증명하지는 않습니다.
결론
이 스킬은 특히 구체적인 대체 값을 얻고 덜 뚜렷한 항목을 잡아낸다는 점에서, 안내가 없을 때보다 모션 리뷰를 분명히 개선합니다. 같은 체크리스트를 한 문장으로 적은 쪽이 이 테스트에서는 더 좋고 더 저렴했으므로, 이득은 좋은 프롬프트가 아니라 안내가 없는 경우에 대한 것입니다.
트랜스크립트
실행 로그: review-animations (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) 열: 작업, 그룹-회차, 점수(0-5), 토큰, 초, 통과한 검사, 에이전트가 연 스킬 파일. t1-review-diff control-1: 점수 1.94, 토큰 48194, 초 27.2, 검사 1/3, 연 파일 없음 t1-review-diff control-2: 점수 1.12, 토큰 64124, 초 37.9, 검사 1/3, 연 파일 없음 t1-review-diff oneliner-1: 점수 4.59, 토큰 65072, 초 52.4, 검사 3/3, 연 파일 없음 t1-review-diff oneliner-2: 점수 5.0, 토큰 48423, 초 41.8, 검사 3/3, 연 파일 없음 t1-review-diff treatment-1: 점수 3.16, 토큰 77459, 초 41.1, 검사 2/3, 연 파일 review-animations t1-review-diff treatment-2: 점수 4.18, 토큰 77187, 초 40.0, 검사 3/3, 연 파일 review-animations t2-toast-only control-1: 점수 2.22, 토큰 47474, 초 21.1, 검사 0/2, 연 파일 없음 t2-toast-only control-2: 점수 2.22, 토큰 47748, 초 25.5, 검사 0/2, 연 파일 없음 t2-toast-only oneliner-1: 점수 5.0, 토큰 31576, 초 16.0, 검사 2/2, 연 파일 없음
18회 실행, 아티팩트 3개
샘플 출력
SOTA · With the skill: final message (t1-review-diff, run 1, Codex)
| Before | After | Why | | --- | --- | --- | | Toast starts at `scale(0)` ([diff:5](change.diff:5)) | Start at `scale(0.95)` with opacity `0`. | Growing from nothing creates an exaggerated entrance and distorts the toast’s content. | | Toast uses `all 600ms ease-in-out` ([diff:5](change.diff:5)) | Limit transitions to `transform, opacity`; shorten below 300ms and use `cubic-bezier(0.23, 1, 0.32, 1)`. | The entrance starts slowly and takes too long. `all` also allows future layout changes to animate accidentally. | | Sidebar animates `width 400ms` ([diff:7](change.diff:7)) | Remove the width transition; apply the collapsed width immediately. | Animating from 240px to 56px repeatedly recalculates layout and can reflow content throughout an already lengthy transition. | | Command items enter with a 500ms, 24px slide ([diff:10](change.diff:10)) | Remove the item animation and its delay rule. | Assuming `.cmdk-item` represents command-palette items, decorative entrances delay visual availability in a frequently used keyboard workflow. Adding stagger would worsen this. | | Movement has no reduced-motion override ([diff:5–12](change.diff:5)) | Under `prefers-reduced-motion: reduce`, remove scaling and translation; retain a short opacity transition where useful. | The supplied styles impose the same movement on users who request reduced motion. | | Hover transition is ungated ([diff:9](change.diff:9)) | Gate it with `@media (hover: hover) and (pointer: fine)`; prefer an immediate background change. | Touch can produce lingering hover states. Removing this frequent color animation also avoids repeated paint work. | **Feel-breaking regressions:** The toast’s zero-scale entrance and slow timing block approval. The command-item animation should be removed if these are command-palette results. **Performance:** The sidebar width transition adds avoidable layout work. Keep the toast’s transitions explicitly scoped. **Accessibility:** Reduced-motion handling and hover capability gating are missing. **Block.** Static review only; the workspace contains no runnable interface to verify motion visually. Locations above reference the supplied diff. No files changed.