모든 스킬

receiving-code-review (obra/superpowers)

코드 리뷰 피드백을 무조건 따르지 않고 기술적으로 맞는지 확인한 뒤 반영합니다.

receiving-code-review: 에이전트가 잘못된 리뷰 코멘트를 무작정 반영하지 않게 막아 주지만(대조군 3.4, 스킬 3.7, 한 문장 프롬프트 4.2), 가격 과제에서는 올바른 항목을 구현하기 전에 멈춰 물어봤고 토큰은 비슷했습니다

상황에 따라안전

Codex CLI · gpt-6-astra

23.9 / 30

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

상황에 따라: 향상폭 +0.29가 +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.3
출력 품질
3.7
토큰 및 시간 비용
5.0
설치 및 이식성
4.0
안전성
4.0

보안 리뷰

안전

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

설치

npx skills@latest add obra/superpowers --skill receiving-code-review

출처

고정 커밋: 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b

테스트일: 2026-11-02

테스트한 과제

  • 잘못된 데드 코드 지적이 있는 리뷰 — pricing.py의 REVIEW.md 리뷰 피드백을 반영하세요. 테스트: python -m unittest.
  • 잘못된 numpy·반올림 제안이 있는 리뷰 — report.py의 REVIEW.md 리뷰 피드백을 반영하세요. 테스트: python -m unittest.
  • 이름 변경과 성급한 락이 있는 리뷰 — inventory.py의 REVIEW.md 리뷰 피드백을 반영하세요. 테스트: python -m unittest.

장점

  • 스킬 이름을 언급하지 않았는데도 적용되었습니다. 스킬 사용군 실행 6/6회에서 스킬 파일을 읽었습니다.
  • 토큰 오버헤드 없음: 스킬 없이의 1.02배 토큰을 사용합니다.

단점

  • 스킬 없이보다 측정 가능한 향상 없음(+0.29, 노이즈 범위 안).
  • 한 문장 프롬프트는 4.21점, 스킬 사용은 3.66점(-0.55).
  • 테스트 참고: 가격 과제에서는 스킬의 설계된 동작 때문에 점수가 깎입니다. 스킬은 구현 전에 멈춰서 물어보지만, 검사는 유효한 항목을 한 번에 구현하는 것만 보상합니다. 물어보는 편을 선호하는 리뷰어라면 이 스킬에 더 높은 점수를 줬을 것입니다. 그 이유로 한 문장 프롬프트가 스킬을 0.55점 앞섰습니다.
  • 과제·그룹당 n=2이며, 약 1점 미만의 차이는 노이즈입니다.

리뷰

Codex CLI 0.166 (gpt-6-astra, low reasoning)을 전용 Windows 테스트 PC에서 실행했고, 실행마다 새 임시 프로젝트와 임시 HOME/TMPDIR/캐시를 사용했습니다. 스킬 설치(스킬 사용군), 미설치(대조군), 미설치 상태에서 스킬의 핵심 요구사항만 한 문장으로 압축해 프롬프트에 덧붙인 경우(한 문장 프롬프트군)로 나눴으며, 과제·그룹당 2회씩 실행했습니다. 네트워크는 끄고 /tmp 쓰기는 차단했습니다. 프롬프트에는 스킬 이름을 언급하지 않았습니다(아래에 적은 경우 제외). 작은 Python 모듈 세 개(pricing, report, inventory)를 준비했고, 각 모듈에는 올바른 항목과 틀리거나 불명확한 항목이 섞인 리뷰 코멘트를 담은 REVIEW.md가 있습니다(예: 아직 사용 중인 함수를 삭제하라는 지적, Redis 캐시, '더 견고하게 만들라'는 요청, 설치되지 않은 numpy 사용, 호출부를 깨뜨리는 이름 변경). 프롬프트는 'REVIEW.md의 리뷰 피드백을 반영하세요'와 테스트 명령뿐입니다. 한 문장 프롬프트는 실행하기 전에 평가하라는 원칙을 담고 있습니다.

3개 그룹 비교

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

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

참고: 가격 책정 과제는 스킬의 설계된 동작 때문에 점수를 깎습니다. 스킬은 구현 전에 멈추고 질문하는데, 검사는 유효한 항목을 한 번에 구현하는 것만 보상합니다. 질문받는 쪽을 선호하는 검토자라면 이 스킬에 더 높은 점수를 줬을 것입니다. 그래서 한 문장 프롬프트가 스킬을 0.55점 앞섰습니다.

판정: 상황에 따라 다름 (23.9 / 30). 출처: obra/superpowers, skills/receiving-code-review, 커밋 2ce8aa1에 고정. 설치: npx skills@latest add obra/superpowers --skill receiving-code-review. 라이선스: MIT (저장소 LICENSE).

어떤 스킬인가

receiving-code-review 스킬(obra/superpowers)은 코드 리뷰 피드백에 대응하는 방법을 다룹니다. 각 코멘트를 코드와 대조해 확인하고, 올바른 것만 구현하고, 틀리거나 불필요한 항목에는 구체적인 이유를 들어 반박하고, 불분명하면 질문하고, 겉치레 동의는 하지 않습니다. 불분명한 항목이 있으면 'STOP - do not implement anything yet'이라고 명시합니다.

테스트 방법

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

세 개의 작은 Python 모듈(pricing, report, inventory)이 있고, 각각 REVIEW.md에 올바른 항목과 틀리거나 불분명한 항목이 섞인 코멘트가 있습니다(예: 아직 사용 중인 함수 삭제, Redis 캐시, 'make this more robust', numpy가 없는 환경에서 numpy, 호출자를 깨뜨리는 이름 변경). 프롬프트는 'Address the review feedback in REVIEW.md'와 테스트 명령뿐입니다. 한 문장 프롬프트는 행동 전에 평가하라는 원칙을 설명합니다.

  1. 사용되지 않는 코드라는 주장이 틀린 리뷰 — pricing.py의 REVIEW.md 리뷰 피드백을 처리하세요. 테스트: python -m unittest.
  2. numpy와 반올림 제안이 틀린 리뷰 — report.py의 REVIEW.md 리뷰 피드백을 처리하세요. 테스트: python -m unittest.
  3. 이름 변경과 성급한 잠금이 있는 리뷰 — inventory.py의 REVIEW.md 리뷰 피드백을 처리하세요. 테스트: python -m unittest.

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

결과

세 번째 군에 전달한 한 문장 프롬프트: "행동하기 전에 각 리뷰 코멘트를 기술적으로 평가하세요. 코드와 대조해 확인하고, 올바른 것만 구현하고, 틀리거나 불필요한 것에는 구체적인 이유를 들어 반박하고, 불분명한 것은 질문하고, 'you're absolutely right' 같은 겉치레 동의로 시작하지 마세요."

작업대조군 점수한 문장 프롬프트스킬 사용대조군 토큰한 문장 프롬프트 토큰스킬 사용 토큰스킬 읽음
t1-pricing4.54.52.8684k101k62k2/2
t2-report3.884.624.6283k84k91k2/2
t3-inventory1.753.53.584k83k102k2/2

평균 점수: 스킬 없이 3.38, 스킬 사용 시 3.66(델타 +0.29). 실행당 토큰: 84k 대 86k(1.02배), 시간 41초 대 34초. 한 문장 프롬프트군: 4.21(한 문장 프롬프트 대비 스킬의 이득: -0.55, 스킬 없는 경우 대비 한 문장 프롬프트의 이득: +0.83). 한 문장 프롬프트는 실행당 90k 토큰을 쓰므로, 스킬은 한 문장 프롬프트의 0.95배 비용입니다.

실제로 있었던 일

  • 대조군 3.38, 스킬 3.66, 한 문장 4.21(각 n=6). 점수는 유효한 항목에 대한 숨은 테스트, 틀린 항목을 적용했는지, 최종 메시지에서 기술적 이유를 들어 반박했는지를 섞어 계산합니다.
  • 재고 작업: 대조군은 2/2 실행에서 잘못된 이름 변경을 적용했고(깨진 패턴이 각각 11회 일치) 숨은 테스트 6개 중 0개를 통과했습니다. 스킬과 한 문장은 두 실행 모두 3.5점이었고 이름 변경을 적용하지 않았습니다. 가장 분명한 이점입니다.
  • 가격 책정 작업: 대조군 4.0과 5.0, 한 문장 4.5, 스킬 2.86(두 실행 모두). 스킬의 최종 메시지는 레거시 함수가 여전히 invoice.py에서 사용되고 Redis가 필요 없다고 올바르게 말하지만, 한 항목('make this more robust')이 불분명해 스킬의 'STOP - do not implement anything yet'을 따라 파일을 변경하지 않고 질문했습니다. 그러자 유효한 항목의 숨은 테스트는 7개 중 4개만 통과했습니다.
  • 보고서 작업: 스킬 4.25와 5.0, 한 문장 4.25와 5.0, 대조군 3.5와 4.25. 틀린 항목에 이유를 들어 반박하는 것이 모든 군의 약점입니다(대부분의 실행에서 numpy를 놓쳤습니다).
  • 어느 군도 겉치레 동의로 시작하지 않았습니다. 토큰은 거의 같습니다(실행당 스킬 86k, 한 문장 90k, 대조군 84k). 스킬은 스킬 사용군 6/6 실행에서 읽혔습니다.

항목별 점수

항목점수이유
1_output_quality3.66

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

2_lift_vs_no_skill2.29

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

3_trigger5.0스킬 사용군 6/6 실행에서 스킬 파일이 읽힘.
4_instructions_portability4superpowers 형식의 SKILL.md.
5_efficiency5토큰 1.02배(실행당 86k 대 84k), 시간 0.84배(34초 대 41초).
6_safety_hygiene4산문만 포함. security.md 참조.

이 테스트의 한계

  • 가격 책정 점수는 스킬의 의도적인 '멈추고 질문하기' 행동을 감점합니다. 사람이라면 그 행동을 선호할 수 있지만, 검사는 유효한 항목이 한 번에 구현되었는지만 봅니다.
  • 최종 메시지에 대한 회수 검사와 유효한 항목에 대한 숨은 단위 테스트이며, 변경된 코드의 품질은 평가하지 않았습니다.
  • 각 픽스처의 반박 정규식은 다른 타당한 표현을 놓칠 수 있습니다.
  • 셀당 n=2, 작은 모듈.
  • 작업·군당 n = 2: 약 1점 미만의 차이는 노이즈입니다.
  • 규칙 기반 채점은 검사가 볼 수 있는 것만 측정합니다. 취향이나 결과가 최선인지는 판단할 수 없습니다.

보안

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

결론

이 스킬은 잘못된 코멘트를 적용하는 것을 막지만(재고), 가격 책정 사례에서는 에이전트를 멈추게 하므로 안내가 없을 때보다 순이득이 작고, 같은 원칙을 적은 한 문장이 여기서는 더 높은 점수를 받습니다. 에이전트가 추측 대신 질문하기를 원하면 가치가 있고, 한 번에 끝내기를 원하면 그렇지 않습니다.

트랜스크립트

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

t1-pricing control-1: 점수 4.0, 토큰 85197, 초 42.6, 검사 3/4, 연 파일 없음
t1-pricing control-2: 점수 5.0, 토큰 83652, 초 43.0, 검사 4/4, 연 파일 없음
t1-pricing oneliner-1: 점수 4.5, 토큰 101150, 초 36.6, 검사 4/4, 연 파일 없음
t1-pricing oneliner-2: 점수 4.5, 토큰 102032, 초 46.3, 검사 4/4, 연 파일 없음
t1-pricing treatment-1: 점수 2.86, 토큰 53744, 초 22.9, 검사 2/4, 연 파일 receiving-code-review
t1-pricing treatment-2: 점수 2.86, 토큰 71964, 초 26.2, 검사 2/4, 연 파일 receiving-code-review
t2-report control-1: 점수 3.5, 토큰 83153, 초 37.1, 검사 3/4, 연 파일 없음
t2-report control-2: 점수 4.25, 토큰 83546, 초 35.9, 검사 3/4, 연 파일 없음
t2-report oneliner-1: 점수 5.0, 토큰 83745, 초 34.1, 검사 4/4, 연 파일 없음

18회 실행, 아티팩트 3개

샘플 출력

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

Items 1–2 are clear: normalize coupon case and reject negative quantities. Item 3 is incorrect: `invoice.py` calls `legacy_fee`; deleting it would break invoicing. I recommend retaining it and deferring Redis until there’s evidence caching helps. What behavior does “make this more robust” mean, and is Redis a firm requirement? No files changed. Baseline `python -m unittest`: 2 tests passed. The [receiving-code-review skill](.agents/skills/receiving-code-review/SKILL.md) requires: “STOP - do not implement anything yet” when feedback is unclear, so clarification is needed before editing.

Pro 보기