skills/slides-review/SKILL.md
--- name: slides-review description: Gemini CLI를 활용한 HTML 디자인 리뷰 스킬. 생성된 HTML 파일을 Gemini에게 전달하여 시각 디자인 개선 지침을 받고, 메인 세션에서 CSS/HTML을 수정한다. Gemini 불가 시 in-session fallback. 트리거: "디자인 리뷰", "gemini review", "design review", "디자인 검토", "디자인 보완", "slides review", "슬라이드 리뷰". --- # Slides Review ## Overview HTML 파일의 시각 디자인 품질을 Gemini CLI로 검토하고, 반환된 개선 지침을 메인 세션(Claude)이 직접 적용하는 스킬이다. 다른 스킬(예: `create-slides`)의 후처리 단계로 호출되거나, 사용자가 직접 호출할 수 있다. 에이전트(Gemini CLI)가 불가하거나 전원 실패하면 in-session fallback으로 직접 리뷰
npx skillsauth add toongri/oh-my-toong-playground skills/slides-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
HTML 파일의 시각 디자인 품질을 Gemini CLI로 검토하고, 반환된 개선 지침을 메인 세션(Claude)이 직접 적용하는 스킬이다.
다른 스킬(예: create-slides)의 후처리 단계로 호출되거나, 사용자가 직접 호출할 수 있다.
에이전트(Gemini CLI)가 불가하거나 전원 실패하면 in-session fallback으로 직접 리뷰한다.
핵심 원칙: gemini CLI가 불가하면(missing_cli 등) 아무 일도 하지 않는 대신 in-session fallback으로 직접 리뷰한다. 진짜 quiet pass는 리뷰 대상 HTML 파일 경로가 유효하지 않은 경우뿐이다.
이 스킬은 아래 정보를 필요로 한다:
| 파라미터 | 필수 | 설명 | |---------|------|------| | HTML 파일 경로 | Yes | 리뷰 대상 HTML 파일의 절대 경로 | | 디자인 경로 | No | 사용된 디자인 스타일 (예: "frontend-design", "자체 심플", "직접 제공"). Gemini에게 맥락을 전달하여 디자인 방향에 맞는 리뷰를 유도한다 | | 보호 규칙 | No | 호출자가 지정하는 수정 금지 항목 (예: scroll-snap, 특정 폰트) |
호출 패턴:
리뷰 대상 HTML 파일 경로를 확인한다.
CRITICAL: 모든 Bash 호출에 timeout: 180000을 설정한다.
프롬프트 파일을 작성하고 job을 시작한다:
PROMPT_FILE=$(mktemp)
cat > "$PROMPT_FILE" << 'PROMPT_EOF'
[HTML 파일 전체 내용을 여기에 포함]
Design path used: {design-path}
PROMPT_EOF
JOB_DIR=$(bun "${CLAUDE_SKILL_DIR}/scripts/job.ts" start --stdin < "$PROMPT_FILE")
Design path used: 행 생략start 실패 시 in-session fallback: start가 non-zero로 종료되거나 $JOB_DIR이 비어 있으면 Steps 3–5(collect/clean 없음)를 건너뛰고, prompts/default.md를 READ한 뒤 그 페르소나가 되어 in-session으로 HTML 디자인 리뷰를 수행한다. stderr에 to dispatch가 포함된 경우(멤버 0개 — 예상된 경로)는 조용히 fallback으로 진입한다. 그 외 non-zero 종료(디스크/권한 오류, spawn 실패 등 예상치 못한 실패)는 실패 사유(stderr 한 줄)를 출력한 뒤 in-session fallback을 수행한다.
bun "${CLAUDE_SKILL_DIR}/scripts/job.ts" collect "$JOB_DIR"
"overallState": "done" → Step 4로 진행"running" / "queued" → collect 재호출 (동일 명령)missing_cli / error / timed_out / canceled / non_retryable → in-session fallback (아래 참조). "unavailable"로 끝내지 않는다.awaiting_resume 이거나 내용이 비-답변(플랜/프레이밍/대기 패턴) → resume-member로 완답을 이끌어낸다 (최대 3회). cap 소진 또는 실패 시 in-session fallback.in-session fallback 진입 시: prompts/default.md를 READ하고 그 페르소나가 되어 in-session으로 HTML 디자인 리뷰를 수행한다. fallback 전에 clean을 먼저 실행하지 않는다 — clean은 모든 처리가 끝난 마지막 단계다.
collect 결과의 manifest에서 gemini의 outputFilePath를 Read 도구로 읽는다.
Gemini가 반환한 개선 지침을 그대로 Edit 도구로 CSS/HTML에 적용한다.
적용 원칙:
호출자 보호 규칙만 예외: 호출자가 보호 규칙을 전달한 경우, 해당 규칙에 정확히 위배되는 지침만 제외한다.
bun "${CLAUDE_SKILL_DIR}/scripts/job.ts" clean "$JOB_DIR"
주의: clean은 모든 처리가 끝난 마지막 단계다. quiet pass로 빠져나온 경우도 마찬가지로 clean을 호출해 임시 파일을 정리한다.
적용 완료 후 사용자에게 간략히 요약:
Gemini 디자인 리뷰 반영: {적용 항목 수}/{전체 지침 수}건 적용
- {적용한 항목 1줄 요약}
...
quiet pass인 경우 아무것도 출력하지 않는다.
아래 경우에서 에러 없이 조용히 건너뛴다:
| 조건 | 동작 | |------|------| | HTML 파일 경로가 유효하지 않음 | 즉시 종료, 메시지 없음 |
아래 경우에서 prompts/default.md를 읽고 in-session 리뷰를 수행한다:
| 조건 | 동작 |
|------|------|
| start 비정상 종료 / $JOB_DIR 빔 (멤버 없음) | Steps 3–5 생략, in-session fallback 즉시 진입 (clean 없음) |
| gemini CLI 미설치 (missing_cli 상태) | in-session fallback 수행 후 clean |
| Gemini 호출 타임아웃 (timed_out 상태) | in-session fallback 수행 후 clean |
| Gemini 호출 에러 (error 상태) | in-session fallback 수행 후 clean |
| awaiting_resume — resume cap 소진 또는 전원 실패 | in-session fallback 수행 후 clean |
<style> 블럭을 교체하지 않는다 -- 개별 CSS 속성 단위로 Editreview.config.yaml: Gemini 리뷰어 설정 (command, model, timeout)scripts/job.ts: Job 매니저 (start/collect/clean). generic-job.ts 프레임워크 기반 thin wrapper.scripts/worker.ts: Gemini CLI 워커. worker-utils.ts 기반.prompts/gemini.md: Gemini에 전달하는 디자인 리뷰 시스템 프롬프트. 리뷰 기준 6가지, 출력 포맷(Target/Issue/Fix), 제약 조건 정의.prompts/default.md: in-session fallback 페르소나 프롬프트 — 에이전트 불가 시 in-session fallback에서 로드. 동일한 리뷰 기준 6가지 + 직접 Edit 적용 지침.tools
Use when creating, refining, or managing requirement-stage PM tickets. Triggers include "요구사항 티켓 만들어", "티켓 정리", "이 요구사항 이슈로", "티켓 써줘", "requirement to ticket", "manage ticket", "file this requirement", "이슈로 만들어", "티켓 작성", "요구사항 이슈화".
development
Autonomous objective-pursuit orchestrator — wraps deep-interview/prometheus/sisyphus, then re-pursues the objective across plan/execute cycles until an objective-level argus completion gate confirms the verification surface is met.
tools
Use at the end of a work session to review the WHOLE session and record entities worth pinning. This is the manual, deliberate complete-sweep review — NOT an automated nudge. Triggers on "wrap up", "wrap-up", "session wrap", "end of session", "what should I pin".
documentation
Use when initializing the pins knowledge graph for the first time in a project. Guides the user through creating pins.yaml (the storage manifest). Triggers on "setup pins", "initialize pins", "create pins.yaml", "first-run pins".