From sd
산출물(코드·문서 등)을 도메인 자동판정 후 적용 룰을 전수·적대적으로 검증해 [자동]/결정 분류로 보고하는 멀티에이전트 리뷰. Use when 사용자가 sd-review 스킬을 직접 지정해 호출할 때만 사용 (자동 트리거 금지).
How this skill is triggered — by the user, by Claude, or both
Slash command
/sd:sd-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
리뷰 요청 시 메인 루프가 직접 오케스트레이션. 계획을 직접 세운 뒤, 대상 규모에 따라 차원별 전수 룰 대조와 발견별 적대 검증을 서브에이전트(Agent 도구)로 펼치거나 직접 수행하고, 검증 통과분을 병합·분류·적용·결정 처리.
리뷰 요청 시 메인 루프가 직접 오케스트레이션. 계획을 직접 세운 뒤, 대상 규모에 따라 차원별 전수 룰 대조와 발견별 적대 검증을 서브에이전트(Agent 도구)로 펼치거나 직접 수행하고, 검증 통과분을 병합·분류·적용·결정 처리.
리뷰·검증 서브에이전트에 항상 주입하고, 메인 루프가 직접 수행할 때도 동일하게 적용:
분류(category) 기준:
자동 = 오타·맞춤법·띄어쓰기·조사 오용·들여쓰기/줄바꿈 통일·trailing whitespace·세미콜론·중복 제거 등 순수 형식 정리, 또는 변경 전후 의미·적용 범위가 동일함이 명백한 표현 정리.결정 = 위 자동 어디에도 해당하지 않는, 의미·적용 범위가 조금이라도 변동될 가능성이 있는 모든 항목.심각도(severity): error=동작 결함·데이터 정합성·룰 명백 위반, warn=권고 위반·잠재 위험, info=경미·형식.
사용자가 지정한 대상(파일 경로·디렉터리·코드·문서·자연어 설명) 확정. 모호하면 사용자에게 묻기.
Glob·Grep·Read 로 직접 수행:
대상 식별 — 구체 리뷰 단위로 확정.
도메인 판정 — 각 단위가 어떤 산출물 도메인인지 판정. 예: "@simplysm v14 화면 컴포넌트", "@simplysm v14 라이브러리/CLI 코드", "ORM/DB 스키마", "LLM 문서(SKILL.md/CLAUDE.md/.claude/rules)", "사람용 문서", "스킬 정의", "spec.md" 등.
적용 룰 동적 발견 — 도메인에 맞는 룰 소스를 실제로 찾아 경로를 적음.
auto-injected: <지침명> 으로 표기.manuals/client-*.md, orm.md 등; 실제 Read/Glob 으로 존재 확인).sd-spec, 매뉴얼이면 sd-manual).existing-pattern 표기 (코드베이스 비교).리뷰 차원 도출 (분할 축 자율 결정) — 대상 규모(단위 수·파일 크기·룰 도메인 수)를 먼저 가늠한 뒤 가장 효율적인 분할 축을 택해 차원 구성.
계획을 바탕으로 Review·Verify 를 서브에이전트로 펼칠지 직접 할지 판단:
subagent_type 은 general-purpose (전수 Read·판정 필요).각 차원에 대해 (Agent 또는 직접) 아래를 수행. Agent 로 펼칠 때 프롬프트:
[검증 원칙 주입]
리뷰 차원: <title>
검사 초점: <focus>
적용할 룰 소스(존재 파일은 전부 Read; auto-injected/existing-pattern 는 컨텍스트·코드베이스 조사로 처리):
- <ruleSources...>
리뷰 단위(전부 Read 로 끝까지):
- <units...>
위 룰 소스를 단위 전체에 전수 대조해 위반을 보고. 각 발견에 아래 필드를 채울 것.
위반 없으면 "발견 없음" 으로 반환.
발견 형식(항목마다):
- title: 한 줄 요약
- file: 파일 경로 또는 basename
- line: 라인/섹션 번호 또는 범위
- severity: error|warn|info
- category: 자동|결정
- rule: 위반한 룰 출처 + 원문 인용
- evidence: 코드/문장 근거 인용
- fix: 제안 수정
전 차원의 발견을 수집해 합침.
발견이 0건이면 생략(7단계로). 1건 이상이면 각 발견을 (독립 Agent 가 기본) 적대 검증. Agent 프롬프트:
[검증 원칙 주입]
다음은 리뷰에서 제기된 발견 항목이다. 두 가지를 모두 적대적으로 검증하라.
[1] 발견(문제) 검증: 인용된 룰이 실제로 그렇게 규정하는지, 대상이 실제 그 위치에서 그러한지 파일을 직접 Read 하여 확인. 과장·오인·룰 오인용이면 verdict=rejected, 불명확하면 uncertain, 사실이면 confirmed. 의심스러우면 기각 쪽. final_severity/final_category 재산정.
[2] 해결책(제안 수정) 검증: 제안 수정을 공격적으로 따져라 —
- 실제로 그 문제를 해결하는가,
- 새 룰 위반·회귀를 만들지 않는가,
- 엣지케이스(결측 null/undefined, 동시성/트랜잭션, soft delete 동명 레코드, 권한 분기, 타입/스키마 제약 등)에서 깨지지 않는가,
- 과도(over-engineering)하거나 틀린 접근은 아닌가.
대상 코드·스키마·룰을 직접 확인해 판정. 결함이 있으면 fix_verdict=flawed/risky 로 두고 교정안 제시. 건전하면 fix_verdict=sound 로 두고 원안 재기술.
발견이 rejected 면 [2] 생략 가능 — fix_verdict=uncertain, fix_revised="".
발견 항목:
- 제목: <title>
- 위치: <file> (<line>)
- 심각도(제안): <severity>
- 분류(제안): <category>
- 위반 룰: <rule>
- 근거: <evidence>
- 제안 수정: <fix>
리뷰 단위 경로:
- <units...>
해당 파일·스키마·룰 소스를 Read 하여 직접 대조 후 판정.
판정 형식:
- verdict: confirmed|rejected|uncertain
- reason: 룰 원문과 대상을 재확인한 판정 근거
- final_severity: error|warn|info
- final_category: 자동|결정
- fix_verdict: sound|risky|flawed|uncertain
- fix_assessment: 해결책이 문제를 실제 해결하는지, 새 룰 위반·회귀·엣지케이스를 유발하는지 근거
- fix_revised: flawed/risky 면 교정된 해결책; sound 면 원안 재기술; 발견 rejected 면 빈 문자열
fail-fast: 펼친 Agent 중 하나라도 실패(에러)하면 부분 결과로 진행 금지. "위반 없음" 으로 보고하지 말고 실패 사실을 알린 뒤 해당 Agent 만 재실행해 보완. 전건 정상 반환이어야 전 차원·전 발견 검증 완료로 간주.
검증 결과를 모아 통과분(survived)을 산정:
verdict = confirmed 또는 uncertain 인 발견만 survived 로 채택. rejected 는 제외(보고용 rejected[] 로 분리).severity = 검증의 final_severity.category = verdict=uncertain 이면 무조건 결정, 아니면 검증의 final_category.fix = fix_revised 가 비어있지 않으면 그 값, 아니면 원안 fix.fix_verdict·fix_assessment·verifyReason(검증 reason) 보존.survived 에서 같은 위치(file:line)·같은 본질 이슈가 여러 차원에서 중복 제기된 항목은 하나로 병합(룰 인용은 합쳐 표기). 위치·이슈가 다르면 별개로 유지.
survived 의 category 로 묶음:
category=자동 → [자동].category=결정 → 결정 대상.verdict=uncertain 항목은 결정 진행 시 불확실 사유를 함께 명시.fix_verdict 가 risky·flawed·uncertain 인 항목은 fix_assessment 요약을 함께 적어 주의 환기.[자동] 분류 항목을 각 file·line·fix 대로 즉시 편집 적용. 0건이면 생략.
결정 대상이 1건 이상이면 행동 규칙 "사용자 질의 시" 의 결정 진행 모드로 전환 (각 항목의 title·rule·evidence·fix 를 근거로). 0건이면 11단계로.
집계(단위·차원·total·confirmed/uncertain/rejected·survived 수) 와 [자동]/결정 분류 결과, rejected[](검증 탈락분: dimension·title·file·line·reason)를 정리해 사용자에게 제시.
npx claudepluginhub kslhunter/simplysm --plugin sdCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.