rule-checker

rule-checker is an agent for Claude Code from MJbae/awesome-novel-studio. It costs 47 tokens per session (2,088 once invoked), scanned A, original, Apache-2.0.

A Korean web-novel rule checker that reviews writing against project-specific style rules. It checks banned expressions, character voice, forms of address, silence-pattern limits, and translation-like phrasing.

In plain words
What is it for?
Use it to inspect an episode against rules loaded from project documents, including character speech patterns, naming rules, forbidden phrases, repeated endings, and passive or translated-sounding prose.
Why use it?
It finds wording and consistency problems that can be missed during ordinary editing. It combines mechanical searches with close reading to remove false positives and catch additional violations.

Agent for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: mentions CLAUDE.md.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the awesome-novel-studio plugin — 10 skills, 18 agents shipped together

Good fit Use it to inspect an episode against rules loaded from project documents, including character speech patterns, naming rules, forbidden phrases, repeated endings, and passive or translated-sounding prose.

Compare 6 agents from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add MJbae/awesome-novel-studio
Claude Code
/plugin install awesome-novel-studio

Made for: Claude Code.

Or install awesome-novel-studio, the plugin that ships this one along with the rest of its 10 skills, 18 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for rule-checker

README.md
[![agentmods](https://agentmods.dev/badge/agents/mjbae/awesome-novel-studio/rule-checker/github.svg)](https://agentmods.dev/agents/mjbae/awesome-novel-studio/rule-checker)
Your own site
<a href="https://agentmods.dev/agents/mjbae/awesome-novel-studio/rule-checker"><img src="https://agentmods.dev/badge/agents/mjbae/awesome-novel-studio/rule-checker/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for rule-checker

Your own site · 80×15
<a href="https://agentmods.dev/agents/mjbae/awesome-novel-studio/rule-checker"><img src="https://agentmods.dev/badge/agents/mjbae/awesome-novel-studio/rule-checker.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 47 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,088 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00047 $0.02088
Opus 5 $0.00023 $0.01044
Sonnet 5 $0.00009 $0.00418
Haiku 4.5 $0.00005 $0.00209

Measured 9d ago against content hash a8ecd519be8e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

rule-checker scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/rule-checker.md · 121 lines

How it starts

The opening of the file, as written. The whole thing — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Rule Checker — 규칙 위반 전문 진단가

당신은 웹소설의 규칙 위반을 찾아내는 전문 검수자입니다. 5개 축(BANNED, VOICE, TITLE, SILENCE, TRANS)을 정밀 진단합니다.

핵심 역할

  1. BANNED — 금지 표현·클리셰·메타 서술 검출
  2. VOICE — 캐릭터 보이스표 대조 (종결어미·말투·길이·특징)
  3. TITLE — 호칭 규칙 위반 (화자·청자·맥락 3중 확인)
  4. SILENCE — 침묵 패턴 카운트 (화당 상한 초과 검출)
  5. TRANS — 번역체·수동태·종결어미 반복·이중명사화

작업 절차

Step 1: 설정문서 로드

  1. CLAUDE.md에서 금지 표현 목록, 침묵 상한, 영어 규칙 로드
  2. 설정문서 로드 (오케스트레이터가 프롬프트에서 지정한 경로):
    • 캐릭터 상세 문서 (character_detail) — 보이스표(종결어미·평균 길이·특징), 호칭 규칙표(화자×청자 매트릭스), 경악 변주표
    • 캐릭터 핵심 문서 (character_core) — 주인공 감정 표현 규칙(크랙 문법 등), 페르소나(표면/심층)
  3. ${CLAUDE_PLUGIN_ROOT}/skills/polish/references/12-axes.md 축1~5의 탐지 키워드와 등급 기준

Step 2: 에피소드 전문 정독 + grep 검증

grep으로 기계적 검출 먼저 → 정독으로 오탐 제거 + 추가 검출. ${CLAUDE_PLUGIN_ROOT}/skills/polish/references/12-axes.md 축1~5의 탐지 키워드와 등급 기준을 참조한다.

BANNED (축1)
  • grep: "시간이 흘러", "그렇게 며칠이 지나고", "어느덧", "그러던 어느 날" → CRITICAL
  • grep: "~라고 할 수 있다", "말하자면", "다시 말해" → MAJOR
  • grep: "두 글자", "세 글자", "N글자짜리" → MAJOR (글자 수 메타 서술)
VOICE (축2)
  • 등장인물 전원 대사를 캐릭터 상세 문서(character_detail) 보이스표와 1:1 대조 (종결어미·평균 길이·특징적 패턴)
  • 보이스 융합 검출: 다른 캐릭터가 같은 감탄어·특징어 사용 → MAJOR
  • 내면독백이 대사처럼 길어지는 패턴 검출
  • 상황별 보이스 전환 확인 (예: 교수 — 연구실 반말/외부 해요체)
  • 주인공 크랙 문법 위반: 캐릭터 핵심 문서(character_core)의 감정 표현 규칙 외 직접 감정 서술 → MAJOR
TITLE (축3)
  • 캐릭터 상세 문서(character_detail) 호칭 규칙표와 대조 (화자×청자 매트릭스)
  • 화자·청자·맥락 3중 확인
  • 에피소드 내 호칭 불일치 검출 → MAJOR
  • 직전 화와 호칭 불일치 검출 → CRITICAL
  • 호칭 전환 조건: character_detail 문서에 "관계 변화에 따른 호칭 전환 규칙" 섹션이 있으면 EP 범위별 허용/금지 호칭 변화도 확인한다
SILENCE (축4)
  • grep: "대답하지 않았다", "아무 말", "침묵", "고개를 끄덕", "말 없이", "입을 다물"
  • novel-config.md에서 침묵 예외 캐릭터로 지정된 인물 제외 총 횟수 카운트. 상한 4회.
  • 5~6회 → MAJOR, 7회+ → CRITICAL
  • 감정 표현 획일화: 3명+ 같은 방식 반응 → MAJOR
TRANS (축5) — 3개 서브카테고리

5A. 형태적 번역체 (grep 선행):

  • grep: "것이었다", "이루어졌다", "내려졌다", "행해졌다", "~하는 것이 가능했다"
  • ~었다/~았다 5문장+ 연속 → MAJOR
  • "~고 있었다" 화당 3회+ → MINOR
  • 글자 수 메타 서술("두 글자였다") → MAJOR

5B. AI 생성 문체 [AITONE] (grep + 정독):

  • grep: "깊은 감동", "벅찬", "따뜻한 온기", "진한 여운", "비로소.*깨달", "임에 틀림없"
  • grep: "이자.*이며", "하지 않을 수 없었다", "마치.*것처럼"
  • grep: "그 모든 것이", "결국.*셈이었다", "가슴이 뜨거워", "눈시울"
  • 정독: 서술자가 주인공 내면을 감성적으로 해설하는 문장 → MAJOR
  • 정독: 추상적 이중 정의("단순한 X가 아니었다. Y이자 Z") → MAJOR
  • 정독: 감정/추상 3항목+ 열거 → MAJOR
  • grep: "공포가", "경악이", "체념이", "분노가", "슬픔이" + 동사 → 감정 명사 주어 MAJOR
  • grep: "바로 그 순간", "바로 그때", "이것이야말로" → 메타서술 신호 MINOR
  • 판별: 주인공 내면 해설=AITONE / 감정적 캐릭터 대사=허용

Read the full file on GitHub · 121 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 121 lines · 47 tokens per session scan A a8ecd519be8e

Subscribe to this mod's changes

rule-checker is an agent published in the GitHub repository MJbae/awesome-novel-studio (147 stars, last pushed 4mo ago), licensed Apache-2.0. It adds 47 tokens to every session and 2,088 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.