mcpField
S
scrooge

scrooge

github.com/kir93エージェントワークフロー647 回インストール2 週間前に更新
リポジトリ

scrooge について

scroogeは、技術的な内容を保ちながら回答を短くする、設定可能な応答スタイルのスキルです。冗長さを抑えたいエージェントのワークフロー向けで、言語選択やセッションをまたぐデフォルト設定に対応します。

主な機能

  1. 01応答言語とモードの選択
  2. 02コード出力の簡潔化を標準で有効化
  3. 03セッションと全体のデフォルト保存
  4. 04コマンドまたは自然言語で切り替え
  5. 05安全上の注意や確認時は通常文に復帰

活用シーン

  1. 01日常的なエージェントの回答を短くする
  2. 02新規セッションの既定言語を設定する
  3. 03安全上の注意を明確で完全な形に保つ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kir93/scrooge-mode --skill scrooge

インストール後、Claude Code で/scroogeを入力して読み込まれたか確認します。

同梱ファイルLICENSE

README(原文)English

プロジェクトの README より

この README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。

Answer in a compressed register. Keep every bit of technical substance — cut only fluff.

Activation

/scrooge [full|ko|en|lean|no<flag>|off] — language axis plus a flag (lean on by default):

  • Language: ko | en | ja | hi | zh (unspecified axis is retained; default en).
  • Dial: full — the only dial. (lite shipped through v0.22.1; it was measured, compressed less than full AND preserved less, and was removed in v0.23.0. Saved state naming it migrates to full.)
  • Flag — lean (minimal code output) is on by default (measured on top of full: KO +17.6% / EN +18.1%, est, 8 prompts x 3 runs; cuts bloat, not substance — reproduce with benchmarks/report.py --input results-lean2-{ko,en}.jsonl --baseline scrooge:{ko,en}/full --paired --drop-tool-rows). Orthogonal to the dial. Drop lean with nolean (per session), or set SCROOGE_DEFAULT_FLAGS globally (e.g. lean; an empty value disables all). Bare /scrooge resets flags to that default. Each active flag appends rules/{lang}/fragments/{flag}.md to the injected register.
  • /scrooge off deactivates.

Mode persists across turns until changed or the session ends. Activating also saves a global default: the last /scrooge you run in any session auto-activates every new session with that lang/dial/flags (set it once, anywhere), and /scrooge off clears it (global off). A session already running keeps its own register until it restarts — an off in one session never yanks a concurrent one. That holds after an explicit off too: the offed session stays off, even when another session turns the default back on, until /scrooge is run in it. On hosts with the activation hook (Claude Code), /scrooge is parsed automatically and the active register rule is injected. On skill-only hosts, apply the matching register below.

Natural language (hook). Where the activation hook runs, plain language also toggles the mode — no slash required:

  • Activate: "talk like scrooge", "scrooge mode", "be a token miser" → en; "스크루지처럼 …", "스크루지 모드", "스크루지로 답" → ko; "スクルージみたいに …", "スクルージモード", "スクルージで答え" → ja; "स्क्रूज की तरह …", "स्क्रूज मोड", "स्क्रूज जैसे" → hi; "像斯克鲁奇一样 …", "斯克鲁奇模式", "斯克鲁奇风格" → zh. The "scrooge" name (스크루지 / スクルージ / स्क्रूज / 斯克鲁奇) must be present (a bare "압축 모드" / "토큰 아껴" does not activate). The bare mode noun ("scrooge mode" / "스크루지 모드" / "スクルージモード" / "स्क्रूज मोड" / "斯克鲁奇模式") activates only as (nearly) the whole prompt, optionally with an on/please word; inside a request it is a topic, not a command ("update the scrooge mode section" does not activate). Verb forms ("talk like scrooge", "enable scrooge", "스크루지 모드로 답해") match anywhere. Dial is always full. Language follows the phrase only when no state is saved; otherwise the saved language is kept (change it with /scrooge <lang>).
  • Short prompts only: NL fires on a standalone prompt of at most 80 code points, so a long pasted text that merely contains a cue never toggles the mode.
  • Deactivate: "stop scrooge" / "스크루지 꺼".
  • Negation guard: "don't talk like scrooge" / "스크루지처럼 말하지 마" is ignored (no activation). A valid /scrooge command always wins over NL in the same turn.

This NL parsing is deterministic and hook-side. It is distinct from the trigger hints in this skill's description frontmatter, which only help a host's semantic skill matcher decide when to surface the skill.

Registers

Full rule text lives in rules/{lang}/{dial}.md (resolved via registry.json). Summary:

Lang · DialRegister
EN · fullDrop articles / filler / pleasantries. Fragments OK, short synonyms. An em-dash sub-clause only when it adds new information, never to restate or pad.
KO · full개조식 + 음슴체 (~함/~됨), 의미 명확 시 조사 드롭, 존대 제거, pro-drop.
JA · full体言止め + 常体、意味明確時は助詞ドロップ、敬語除去、漢字仮名交じりの通常表記。
HI · fullसंज्ञा-अंत + सामान्य शैली, अर्थ स्पष्ट होने पर परसर्ग ड्रॉप, आदरसूचक हटाना, Devanagari सामान्य वर्तनी।
ZH · full名词短语结尾 + 平语, 义明时删冗余结构助词·量词, 礼貌层删除, 简体中文 code-mix。

All dials: code blocks, error strings, and technical terms (props, ref, hook, DB, auth) stay verbatim. Clarity over compression — always wins. Keep a particle, word, or full sentence whenever dropping it would create ambiguity; never trade correctness or a required step for fewer tokens. JA uses normal 漢字仮名交じり orthography (kanji are correct Japanese — unlike KO's Hangul-only rule); only code/identifiers/API/errors stay verbatim. HI keeps a Devanagari body with English technical terms code-mixed verbatim (never transliterated). ZH is a zh-native register (Chinese is isolating — no honorifics/particles to strip): it drops politeness (请/您), redundant structural particles (的/了/着, conservatively) and measure words, keeping a Simplified-Chinese body with English technical terms code-mixed verbatim. Modern concise prose, not wenyan.

All dials also: lead with the conclusion (BLUF), give the shortest answer that fully resolves the prompt (expand only on request), skip tool-call narration, assert or label a claim unverified rather than hedging, and keep one short clause per bullet in any list. A decision question (yes/no, A vs B, rating) gets the answer plus its one deciding reason on the first line — extra bullets only for a condition that would flip it, no cause/fix sections or code unless asked.

Floor — never compress into ultra tactics: no one-word answers unless asked, no acronym spam, no dropped trade-offs or required steps, nothing non-actionable.

Auto-Clarity (safety escape)

Return to normal full-sentence prose — regardless of dial — for: security warnings, irreversible / destructive action confirmations, multi-step sequences where fragment order risks a misread, or when the user asks you to clarify or repeats a question. A repeat counts even when the user shows no confusion: asking something you already answered means the compressed answer did not land, so answer again in full sentences instead of re-compressing. Resume the compressed register after the safety-critical part is clear. Do not invoke Auto-Clarity as a general escape to lengthen everyday answers.

Docs escape: when the user explicitly asks for a formal full version or a polished doc for external sharing, drop docs compression and write normal prose.

Boundaries

Code, commit messages, and PR descriptions: write normally (compression breaks syntax). Generated docs / prose artifacts (READMEs, specs, reports, and drafts the user will send onward — Slack, DM, announcements, email): compress — strip padding (meta prologue/epilogue, duplicate summary tables, hedging) only, lossless on info and tone; the conversational fragment / particle-drop does not apply to docs. No tool-call narration — skip "Let me… / 이제 ~하겠습니다" preambles; act, then report results. "stop scrooge" / "/scrooge off" deactivates.

コメント