모든 스킬

code-review (Matt Pocock)

특정 커밋이나 브랜치 이후의 변경을 저장소 규칙과 원래 명세 두 축으로 나란히 검토합니다.

Matt Pocock의 code-review: 리뷰 과제 3개에서 스킬 없는 Codex와 재현율이 같고 토큰은 1.5배 사용합니다

상황에 따라안전

Codex CLI · gpt-6-astra

23.5 / 30

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

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

보안 리뷰

안전

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

설치

npx skills@latest add mattpocock/skills --skill code-review

출처

고정 커밋: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d

테스트일: 2026-11-02

테스트한 과제

  • 작은 서비스 모듈 리뷰 — orders_service.py를 병합하기 전에 리뷰하세요. 발견한 문제를 가장 심각한 것부터 나열하세요. 파일은 변경하지 마세요.
  • 인증 헬퍼 리뷰 — auth_handlers.py를 리뷰하세요. 방금 로그인 플로우용으로 작성했습니다. 문제를 가장 심각한 것부터 나열하세요. 파일은 변경하지 마세요.
  • 작성된 표준과 스펙 대비 최신 커밋 리뷰 — 제 최신 커밋(HEAD~1 이후 변경 사항)을 CODING_STANDARDS.md 및 SPEC.md와 대조해 리뷰하세요. 모든 편차를 가장 심각한 것부터 나열하세요. 파일은 변경하지 마세요.

장점

  • 스킬 이름을 언급하지 않았는데도 적용되었습니다. 스킬 사용군 실행 6/6회에서 스킬 파일을 읽었습니다.

단점

  • 스킬 없이 대비 측정 가능한 향상 없음(+0.08, 노이즈 범위 안).
  • 과제·그룹당 n=2이며, 약 1점 미만의 차이는 노이즈입니다.

리뷰

Codex CLI 0.166 (gpt-6-astra, low reasoning)을 Mac 테스트 머신에서 실행했고, 실행마다 새 임시 프로젝트와 임시 HOME/TMPDIR/캐시를 사용했습니다. 스킬 설치(스킬 사용군), 미설치(대조군), 미설치 상태에서 스킬의 핵심 요구사항만 한 문장으로 압축해 프롬프트에 덧붙인 경우(한 문장 프롬프트군)로 나눴으며, 과제·그룹당 2회씩 실행했습니다. 네트워크는 끄고 /tmp 쓰기는 차단했습니다. 프롬프트에는 스킬 이름을 언급하지 않았습니다(아래에 적은 경우 제외). 단일 파일 리뷰 두 건(문제 8개를 심은 주문 서비스 — 그중 3개는 보안과 무관 —, 문제 8개를 심은 인증 헬퍼)과 CODING_STANDARDS.md 및 SPEC.md 대비 최신 커밋 리뷰 한 건(편차 8개 심음)을 수행했으며, 마지막 과제가 스킬의 의도된 용도입니다. 모든 프롬프트는 읽기 전용입니다('문제를 나열하고 가장 심각한 것부터, 파일은 변경하지 말 것').

3개 그룹 비교

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

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

판정: 상황에 따라 다름 (23.5 / 30). 출처: mattpocock/skills, skills/engineering/code-review, 커밋 4ae2317에 고정. 설치: npx skills@latest add mattpocock/skills --skill code-review. 라이선스: MIT (저장소 LICENSE).

어떤 스킬인가

mattpocock/skills의 code-review 스킬(engineering/code-review)입니다. 주어진 ref 이후의 변경 사항을 두 축으로 리뷰합니다. 코드가 저장소에 문서화된 코딩 표준(과 흔한 코드 냄새)을 따르는지, 그리고 명세가 요구한 것을 구현했는지. 표준/명세 문서가 있는 저장소와 서브 에이전트와 함께 쓰는 상황을 염두에 두고 작성됐습니다. Markdown만 있으며 스크립트는 없습니다.

테스트 방법

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

단일 파일 리뷰 두 개(심어 둔 문제 8개가 있는 주문 서비스, 그중 3개는 보안과 무관. 심어 둔 문제 8개가 있는 인증 도우미)와, 최신 커밋을 CODING_STANDARDS.md와 SPEC.md에 비추어 리뷰하는 작업 하나(심어 둔 편차 8개)로 구성했습니다. 마지막 작업이 이 스킬의 의도된 용도입니다. 모든 프롬프트는 읽기 전용입니다('문제를 나열하고, 심각한 것부터, 파일은 변경하지 말 것').

  1. 작은 서비스 모듈 리뷰 — orders_service.py를 병합하기 전에 리뷰해 주세요. 발견한 문제를 심각한 것부터 나열하세요. 파일은 변경하지 마세요.
  2. 인증 도우미 리뷰 — auth_handlers.py를 리뷰해 주세요. 방금 로그인 흐름을 위해 작성했습니다. 문제를 심각한 것부터 나열하세요. 파일은 변경하지 마세요.
  3. 작성된 표준과 명세에 비추어 최신 커밋 리뷰 — 제 최신 커밋(HEAD~1 이후 변경 사항)을 CODING_STANDARDS.md와 SPEC.md에 비추어 리뷰해 주세요. 모든 편차를 심각한 것부터 나열하세요. 파일은 변경하지 마세요.

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

결과

세 번째 군에 전달한 한 문장 프롬프트: "두 축으로 리뷰하세요. 코드가 저장소에 문서화된 코딩 표준(과 흔한 코드 냄새)을 따르는지, 그리고 명세가 요구한 것을 구현했는지. 각 발견 사항의 파일과 줄을 인용하세요."

작업대조군 점수한 문장 프롬프트스킬 사용대조군 토큰한 문장 프롬프트 토큰스킬 사용 토큰스킬 읽음
t1-orders3.823.593.8279k79k94k2/2
t2-auth4.294.534.5376k70k93k2/2
t3-diff5.05.05.078k80k153k2/2

평균 점수: 스킬 없이 4.37, 스킬 사용 시 4.45(델타 +0.08). 실행당 토큰: 78k 대 114k(1.46배), 시간 44초 대 57초. 한 문장 프롬프트군: 4.37(한 문장 프롬프트 대비 스킬의 이득: +0.08, 스킬 없는 경우 대비 한 문장 프롬프트의 이득: +0.0). 한 문장 프롬프트는 실행당 77k 토큰을 쓰므로, 스킬은 한 문장 프롬프트의 1.49배 비용입니다.

실제로 있었던 일

  • 측정 가능한 향상은 없었습니다. 평균 점수는 스킬 없이 4.37, 한 문장 버전 4.37, 스킬 사용 시 4.45였습니다. 실행당 심어 둔 문제 탐지율: 대조군 8개 중 5.0, 한 문장 프롬프트 5.0, 스킬 5.1.
  • 이 스킬이 작성된 용도(표준 파일과 명세에 비추어 커밋 리뷰)에서는 모든 군이 6/6 실행에서 편차 8개를 모두 찾았습니다. 순수 Codex도 요청만 받으면 CODING_STANDARDS.md와 SPEC.md를 읽고 diff와 비교합니다.
  • 단일 파일 리뷰 두 개에서는 모든 군이 심어 둔 문제 8개 중 5〜7개를 찾았습니다. 놓친 문제는 군마다 같았고(부동소수점 금액, 로그에 기록된 비밀, 로그인 속도 제한 없음), 스킬이 더하는 무엇도 이를 바꾸지 못했습니다.
  • 스킬은 6/6 실행에서 읽혔고 실행당 114k 토큰으로 78k(1.5배)보다 비쌌습니다. 커밋 리뷰 작업에서는 154k 대 79k(약 2배)로 가장 무거웠습니다. 한 문장 프롬프트는 대조군과 같은 비용이었습니다. 파일을 변경한 실행은 없었습니다.
  • 채점 관련 주의: 항목은 정규식으로 매칭하므로 표현이 다른 발견은 놓친 것으로 집계될 수 있습니다.

항목별 점수

항목점수이유
1_output_quality4.45

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

2_lift_vs_no_skill2.08

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

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

표준/명세 문서가 있는 저장소와 서브 에이전트를 띄울 수 있는 에이전트를 위해 작성됐습니다. 다른 환경에서는 평범한 지침으로 동작합니다.

5_efficiency3토큰 1.46배(실행당 114k 대 78k), 시간 1.30배(57초 대 44초).
6_safety_hygiene5Markdown만 있음. 스크립트도 명령도 없음.

이 테스트의 한계

  • 이 스킬은 두 축을 서브 에이전트에 맡기고 저장소 문서를 읽도록 설계됐습니다. 작은 저장소 하나로 비대화형 Codex를 돌린 것으로는 큰 diff에서 그것이 도움이 되는지 알 수 없습니다.
  • 아주 작은 파일에 심어 둔 문제들입니다. 설명의 품질, 심각도 정렬, 오탐은 채점하지 않았습니다.
  • 한 문장 프롬프트는 스킬의 두 축을 다시 진술합니다. 문서화된 표준이 없는 팀이라면 첫 번째 축에 쓸 것이 없습니다.
  • 작업·군당 n = 2: 약 1점 미만의 차이는 노이즈입니다.
  • 규칙 기반 채점은 검사가 볼 수 있는 것만 측정합니다. 취향이나 결과가 최선인지는 판단할 수 없습니다.

보안

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

결론

작성된 표준과 명세에 비추어 커밋을 리뷰해 달라고 하면 순수 Codex도 심어 둔 편차를 모두 찾았고, 스킬은 더 많이 찾지 못한 채 토큰만 늘렸습니다(1.5배〜2배). 모든 리뷰가 같은 두 축 형식을 따르기를 원하는 팀에는 여전히 도움이 될 수 있지만, 이 테스트는 그 부분을 측정하지 않습니다.

트랜스크립트

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

t1-orders control-1: 점수 3.59, 토큰 79037, 초 43.8, 검사 2/2, 연 파일 없음
t1-orders control-2: 점수 4.06, 토큰 79487, 초 50.4, 검사 2/2, 연 파일 없음
t1-orders oneliner-1: 점수 3.59, 토큰 97051, 초 50.6, 검사 2/2, 연 파일 없음
t1-orders oneliner-2: 점수 3.59, 토큰 61642, 초 42.5, 검사 2/2, 연 파일 없음
t1-orders treatment-1: 점수 4.06, 토큰 65668, 초 44.1, 검사 2/2, 연 파일 code-review
t1-orders treatment-2: 점수 3.59, 토큰 123428, 초 56.0, 검사 2/2, 연 파일 code-review
t2-auth control-1: 점수 4.53, 토큰 76436, 초 43.2, 검사 2/2, 연 파일 없음
t2-auth control-2: 점수 4.06, 토큰 76339, 초 43.5, 검사 2/2, 연 파일 없음
t2-auth oneliner-1: 점수 4.53, 토큰 61176, 초 49.9, 검사 2/2, 연 파일 없음

18회 실행, 아티팩트 3개

샘플 출력

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

Found six problems, most serious first: 1. **High — Missing cancellation authorization** ([line 13](orders_service.py:13)). `current_user` is never checked. Anyone able to call this function can cancel another user’s order by supplying its ID. Verify ownership or administrative permission before updating. 2. **High — SQL injection** ([line 9](orders_service.py:9)). `order_id` is interpolated directly into SQL. A value such as `"0 OR 1=1"` changes the query and can return another order. Use a parameterized query. 3. **High — Credential exposure** ([line 4](orders_service.py:4), [line 48](orders_service.py:48)). A live-looking API key is hardcoded, and the successful charge path prints it to logs. Load credentials from secure configuration and remove the logging. If this key is real, rotate it. 4. **High — Charging always fails silently** ([lines 45–55](orders_service.py:45)). `send_to_gateway()` always raises `NotImplementedError`; `charge()` catches it and returns `None`. No payment can succeed, and callers receive no explicit failure. Implement the gateway and propagate or explicitly report failures. 5. **Medium — Discount thresholds are incorrect** ([line 24](orders_service.py:24)). The documented “or more” thresholds require `>=`. Currently, a total of 100 receives no discount, and 500 receives only 10%, yielding 100 and 450 instead of 90 and 400. 6. **Medium — Export file is never explicitly closed** ([line 39](orders_service.py:39)). Buffered output and resource cleanup depend on garbage collection, including on exceptions. Use a `with open(...)` block to ensure flushing and closing. Static review only; no files changed.

Pro 보기