Skip to content
Writing
Skill

/polish

웹소설 윤문 스킬. 6명의 전문 에이전트를 병렬/순차 조합으로 운용하여 에피소드를 순차 윤문. '/polish', '/lint', '/polish start', '/polish EP051', '/polish {프로젝트명}', '/polish {프로젝트명} EP051' 으로 실행. 프로젝트별 novel-config.md를 읽어 설정문서·가드레일·커스텀 축을 자동 적용. '윤문', '린트', 'polish', 'lint' 모두 이 스킬을 트리거한다.

BOOST
From plugin
novel-studio
15910 skills18 agents
Install
$ npx -y skills add MJbae/awesome-novel-studio --skill polish --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/polish

Context preview

The summary Claude sees to decide when to auto-load this skill.

웹소설 윤문 스킬. 6명의 전문 에이전트를 병렬/순차 조합으로 운용하여 에피소드를 순차 윤문. '/polish', '/lint', '/polish start', '/polish EP051', '/polish {프로젝트명}', '/polish {프로젝트명} EP051' 으로 실행. 프로젝트별 novel-config.md를 읽어 설정문서·가드레일·커스텀 축을 자동 적용. '윤문', '린트', 'polish', 'lint' 모두 이 스킬을 트리거한다.

SKILL.md

polish.SKILL.md
name: polish
description: "웹소설 윤문 스킬. 6명의 전문 에이전트를 병렬/순차 조합으로 운용하여 에피소드를 순차 윤문. '/polish', '/lint', '/polish start', '/polish EP051', '/polish {프로젝트명}', '/polish {프로젝트명} EP051' 으로 실행. 프로젝트별 novel-config.md를 읽어 설정문서·가드레일·커스텀 축을 자동 적용. '윤문', '린트', 'polish', 'lint' 모두 이 스킬을 트리거한다."

Polish — 웹소설 윤문 팀 오케스트레이터

6명의 전문 에이전트를 **Fan-out/Fan-in 병렬 구조**로 운용하여 에피소드를 순차적으로 12축(+ALIVE 4축, +프로젝트 커스텀 축) 정밀 윤문하는 자기 반복(self-loop) 스킬.

**프로젝트 독립적**: `novel-config.md`를 읽어 설정문서·가드레일·커스텀 축을 자동 적용한다. 다른 소설 프로젝트에서도 novel-config.md만 작성하면 동일하게 사용 가능.

---

팀 구성

Phase 1 (병렬 진단 — Agent 도구로 4개 동시 호출)
         ┌→ [rule-checker]       ── BANNED, VOICE, TITLE, SILENCE, TRANS ─┐
[에피소드] ├→ [story-analyst]       ── SCENE, LOGIC, UNIFORM (+커스텀)     ─┤
         ├→ [platform-optimizer]  ── HOOK, OPENING, MOBILE, SUMMARY       ─┼→ [진단 통합]
         └→ [alive-enhancer]      ── ALIVE-1~4 (메아리,침묵,긴장점,거리감) ─┘

Phase 2 (순차 교정)
[진단 통합] → [revision-executor] → [교정된 에피소드]

Phase 3 (순차 검증)
[교정된 에피소드] → [revision-reviewer] → PASS / REVISE → (REVISE시 Phase 2 재실행)

| 에이전트 | 역할 | 담당 축 | Phase | |---------|------|---------|-------| | rule-checker | 규칙 위반 진단 | BANNED, VOICE, TITLE, SILENCE, TRANS | 1 (병렬) | | story-analyst | 서사·논리 분석 | SCENE, LOGIC, UNIFORM (+커스텀 축) | 1 (병렬) | | platform-optimizer | 플랫폼 최적화 | HOOK, OPENING, MOBILE, SUMMARY | 1 (병렬) | | alive-enhancer | 캐릭터 생동감 | ALIVE-1~4 | 1 (병렬) | | revision-executor | 교정 실행 | 전체 통합 교정 | 2 (순차) | | revision-reviewer | 교정 검증 | 과교정·신규오류·가드레일 | 3 (순차) |

---

실행 방법

/polish                      ← 기본 프로젝트의 다음 미완료 에피소드부터
/polish EP051                ← EP051부터 시작
/polish start                ← EP001부터 전체 시작
/polish {프로젝트명}          ← 특정 프로젝트 지정 (예: /polish 36억평)
/polish {프로젝트명} EP051    ← 특정 프로젝트 + 특정 에피소드

---

자기 반복 루프 (Self-Loop Protocol)

**이 스킬의 핵심: 에피소드 하나를 완료한 뒤 스스로 다음 에피소드로 넘어간다.** 외부 루프가 필요 없다. Claude 자체의 에이전틱 루프로 반복한다.

루프 구조

LOOP:
  1. fix_plan.md에서 다음 미완료 에피소드 결정
  2. 해당 에피소드에 대해 Phase 1→2→3 실행
  3. fix_plan.md 업데이트
  4. learnings.md 업데이트 (새 패턴 발견 시만)
  5. alive-tracker.md 업데이트 (alive-enhancer 보고서 기반)
  6. 전체 완료 확인
     - 미완료 있음 → LOOP 반복 (다음 에피소드)
     - 전체 완료 → "REVISION_COMPLETE" 출력하고 종료
       완료 시 안내: "설정문서를 변경할 예정이라면 `/rewrite` 실행 후 `/polish`를 다시 실행하세요."

반복 지속 규칙

  • **멈추지 않는다**: 에피소드 하나를 끝내면 즉시 다음으로 진행한다.
  • **사용자 입력을 기다리지 않는다**: 자동으로 계속한다.
  • **종료 조건**: fix_plan.md의 모든 항목이 `[x]`일 때만 멈춘다.
  • **중단 시 재개**: `/polish`를 다시 치면 마지막 미완료 에피소드부터 이어간다.

---

워크플로우 상세

Step 0: 초기화 (최초 1회)

1. 프로젝트 결정
   - $ARGUMENTS에서 프로젝트명 추출 (예: "36억평")
   - 프로젝트명 지정 없으면: 프로젝트 디렉토리 탐색하여 novel-config.md가 있는 디렉토리 자동 감지
   - novel-config.md가 여러 개면: 사용자에게 선택 요청
   - novel-config.md가 없으면: references/project-config-template.md 안내 후 종료

2. novel-config.md 로드 및 **필수 필드 검증 게이트**
   - {PROJECT_DIR}/novel-config.md 읽기
   - **즉시 필수 필드 검증** (하나라도 누락 시 에러 출력 후 종료):

필수 필드 체크리스트:

  • [ ] project.target_platform — 플랫폼명
  • [ ] project.episode_dir — 에피소드 저장 디렉토리
  • [ ] project.work_dir — 작업 디렉토리
  • [ ] 설정문서 매핑.bootstrap — 부트스트랩 경로 (파일 존재 확인)
  • [ ] 설정문서 매핑.character_core — 캐릭터 핵심 경로 (파일 존재 확인)
  • [ ] 설정문서 매핑.character_detail — 캐릭터 상세 경로 (파일 존재 확인)
  • [ ] EP 범위별 플롯 가이드 — 최소 1개 행 존재 (파일 존재 확인)
     검증 실패 시:

❌ novel-config.md 필수 필드 누락: {누락 필드 목록} polish 스킬을 실행하려면 위 필드를 채워주세요. 템플릿: ${CLAUDE_PLUGIN_ROOT}/skills/polish/references/project-config-template.md

   - **target_platform 허용 집합 검증**:
     - `project.target_platform`은 문피아, 네이버시리즈, 카카오페이지, 리디, 조아라, 노벨피아 중 하나여야 한다
     - polish 스킬은 novel-config.md의 canonical 값만 사용하며 자동 매핑하지 않는다
     - 비지원 값이면 에러 출력 후 종료:

❌ 허용되지 않는 target_platform: {현재값} novel-config.md의 project.target_platform을 허용 플랫폼명으로 수정해주세요.

   - 설정문서 경로 매핑 추출 → {CONFIG} 변수로 저장
   - 보존 가드레일 추출
   - 커스텀 축 존재 여부 확인
   - 침묵 패턴 예외 캐릭터 확인

3. 작업 디렉토리 설정
   - novel-config.md의 work_dir에서 fix_plan.md 읽기
   - 없으면 생성 (EP001~마지막 화)
   - learnings.md 읽기 (없으면 생성)
   - alive-tracker.md 읽기 (없으면 생성)

4. $ARGUMENTS 확인
   - "EP{NNN}" → 해당 에피소드부터 시작
   - "start" → EP001부터
   - 없음 → fix_plan.md의 다음 미완료부터

Step 0.5: EP 범위별 설정문서 결정 (매 에피소드)

대상 에피소드 번호에 따라 참조할 설정문서를 결정한다. novel-config.md의 **"EP 범위별 설정문서"** 테이블에서 해당 EP의 플롯 문서와 캐릭터 시트를 선택.

{PLOT_DOC} = novel-config.md의 EP 범위 매핑에서 해당 EP에 맞는 플롯 가이드 경로
             세부 플롯 가이드 열에 경로가 있고 파일이 존재하면 세부 가이드 우선
             (범위 중첩 발견 시 경고 출력 후 첫 번째 매칭 행 사용)
{CHAR_CORE} = novel-config.md의 공통 문서 중 character_core 경로
{CHAR_DETAIL} = EP 범위별 설정문서 테이블의 세부 캐릭터 시트 열에 경로가 있고 파일이 존재하면
                세부 캐릭터 시트 우선, 없으면 공통 문서의 character_detail 경로
{BOOTSTRAP} = novel-config.md의 공통 문서 중 bootstrap 경로
{GUIDE} = novel-config.md의 보조 참조 중 web_novel_guide 경로
{VERIFY} = novel-config.md의 보조 참조 중 verification 경로
{PLOT_MACRO} = novel-config.md의 보조 참조 중 plot_macro 경로
{EPISODE_DIR} = novel-config.md의 episode_dir 경로
{GUARD_RAILS} = novel-config.md의 보존 가드레일 목록
{CUSTOM_AXES} = novel-config.md의 커스텀 진단 축 섹션 (있을 경우)
{SILENCE_EXCEPT} = novel-config.md의 침묵 패턴 예외 캐릭터 (있을 경우)

이하 Phase 1~3의 에이전트 프롬프트에서 위 변수를 실제 값으로 치환하여 전달한다.

Step 1: 대상 에피소드 결정

fix_plan.md에서 최상단 미완료(`[ ]`) 항목을 가져온다. **SKIP 절대 금지.** 모든 에피소드 전문 정독.

Step 1.5: 직전 에피소드 로드 (매 화 필수)

대상 에피소드(EP{NNN})의 **직전 2화**를 반드시 읽는다:

  • `{EPISODE_DIR}/ep{NNN-2}.md` — 직전전 화 전문 (존재할 경우)
  • `{EPISODE_DIR}/ep{NNN-1}.md` — 직전 화 전문

**검증 목적**: 1. **내용 중복**: 동일 사건·대화·묘사가 직전 2화에 겹치는지 확인 2. **개연성 연속성**: 직전 화 결말 → 현재 화 도입이 자연스러운지 확인 3. **시간·수치 교차검증** (아래 프로토콜 참조) 4. **캐릭터 위치**: 직전 화에서 퇴장한 인물이 현재 화에 설명 없이 등장하거나, 반대의 경우 5. **감정 흐름**: 직전 화에서 분노한 인물이 현재 화에서 갑자기 태평한 등 급변 없는지

시간·수치 교차검증 프로토콜 (story-analyst 필수)

에피소드 간 **시간 참조**와 **수치**의 정합성을 구조적으로 검증한다. 단순히 "수치 확인"이 아니라, 아래 3단계를 반드시 수행한다.

**1단계: 타임라인 추출** 대상 에피소드와 직전 2화에서 **모든 시간 마커**를 추출한다:

  • 명시적 날짜: "10월 15일", "1993년 3월"
  • 상대적 시간: "다음 주", "내일", "이번 주 토요일", "연말까지", "1월에"
  • 계절/시기: "봄 이앙", "수확 후", "겨울"
  • 경과 시간: "2주가 걸렸다", "6개월째"

상대적 시간은 해당 장면의 명시적 날짜를 기준으로 **절대 날짜로 변환**한다.

**2단계: 타임라인 교차대조** 같은 사건/약속/예고에 대한 시간 참조가 직전 2화에서 모순되는지 확인한다.

**3단계: 수치 교차대조*

Read more
Ships withnovel-studio

AI Web Novel Creation Harness — A Claude Code Plugin An end-to-end web novel production system built on Claude Code. Combines 18 specialist agents and 10 skills to automate the full pipeline: propose → design → create → polish → rewrite.

Get the whole plugin

Other skills on novel-studio.

bootstrap
Skill

bootstrap

웹소설의 부트스트랩 문서를 단독으로 생성한다. 작품 컨셉, 세계관, 장르 설정, 플랫폼 전략, 셀링포인트를 정의하는 기초 설계 문서. 부트스트랩만 필요할 때(시놉시스 작성, 세계관 설정, 작품 컨셉 수립) 이 스킬을 사용할 것.…

character
Skill

character

웹소설의 캐릭터 시트를 단독으로 생성한다. 전체 소설 캐릭터 프로필/관계망/성장 아크(큰 설계)와 25화 단위 세부 캐릭터 변화(작은 설계)를 수행. 캐릭터만 단독으로 필요할 때(인물 시트, 관계도, 성장 곡선, 적대자 설계) 이…

create
Skill

create

웹소설 에피소드 창작 오케스트레이터. 설정문서(캐릭터시트·플롯가이드·부트스트랩)에 따라 에피소드를 순차 창작한다. '/create', '/create {프로젝트명}', '/create EP051', '/create {프로젝트명}…

design-big
Skill

design-big

웹소설의 큰 설계(전체 소설)를 수행하는 오케스트레이터. 부트스트랩+캐릭터 시트+플롯 훅 가이드를 생성한다. 자동 리서치(domain-researcher 서브에이전트)로 전문 분야 자료를 수집한 후 설계를 진행한다. '큰 설계',…

design-small
Skill

design-small

웹소설의 작은 설계(25화 단위 세부 설계)를 수행하는 오케스트레이터. 세부 캐릭터 시트 + 세부 플롯 훅 가이드를 생성한다. 큰 설계 문서(부트스트랩, 캐릭터 시트, 플롯 훅 가이드)가 전제 조건. 자동…

design
Skill

design

웹소설의 통합 설계 라우터. 큰 설계와 작은 설계를 '둘 다' 수행하거나, 사용자의 모호한 설계/제안 요청을 적절한 스킬로 안내한다. '통합 설계', '큰 설계와 작은 설계 둘 다', '웹소설 기획 부탁해', '소설 설계' 등…