---
name: compress-for-llm
description: Compress text to minimal-TOKEN LLM-readable form — lossless, self-decodable. Use when compressing text whose READER is an LLM (agent docs, prompts, notes), NOT human-facing prose.
---
# Compress for an LLM reader (¬human)
TASK ≜ verbose human text → 最小 **token** 列。reader = 同等能力 LLM ∴ 単一言語文法·敬語·filler 棄。
## directive
- **omnilingual(実測で絞済 2026-07-22)**: ∀ 字体/語 横断 → 概念毎に **最短 tokenize** される表現を
選ぶ。実効 palette = **漢字・中文複合語・文言機能語・English(電報体)・ASCII 記号**のみ。
**英文原文・自作の定型指示文 ⇒ 英語電報体(骨格)が最強**(BPE = 英語 first・"Proc failed => abort."=5tok。
本 skill 自文の英中ごたまぜ再圧縮 = 中文混成 474→401tok 実測 2026-07-22・行別に英/中候補→全文 diff で勝者採用・
勝ち残り中文行 = `path/CLI/enum/error literal=勿译` のみ)・ニュアンスを失えない日文原文 ⇒ CJK 混成。
独複合語(Geschwindigkeitsbegrenzung=6 vs 速度制限=3)・キリル(запрещено=5)・Arabic/Sanskrit/
𓂀 等の珍字体 = **実測で敗北** ∴ 「全書記系」は幻想 — palette は tokenizer 学習頻度が決める。
- **search order(候補の探し方・出力文法の強制ではない)**: cut → code-like structure(`key:value;`・`f(x)`・`{a,b}`・`x:=…`)
→ ASCII operator(`->` `=>` `,` `<=` `not`)。math 記号(⇒ ∴ ∧ ¬ ∈ ≜ …)は **full-string diff で勝った時だけ**
(実測 2026-09-25: ASCII 版が 12/12 セルで安い・勝ったのは Σ のみ = §MiL)。先に**意味の同値**を確かめてから token を比べる。
- **cut**: 重複 · 自明語 · 言い換え · 修辞的hedge · 前置き。`[要検証]` / `UNMEASURED` /
条件・例外・owner gate・fail-closed強度は**情報本体**∴削除/弱化禁止。
## ⚠️ token 節約を理由に CJK 圧縮を選ばない(当 repo 実文で実測 2026-09-01・[[1182]] §3-1)
`tiktoken o200k_base`・当 repo canon の実文 2 例を 3 文体で測った(**当方実測 CONFIRMED**):
| 例 | 当 repo の圧縮体 | 平文 日本語 | **English 電文体** |
|---|---|---|---|
| fence 根拠 | 41 tok | 55 tok | **17 tok** |
| 委譲規 | 23 tok | 35 tok | **15 tok** |
⇒ ① **圧縮体 > 平文日本語**(∴ 圧縮自体は効いている — 「文言文は逆効果」という外部実測
〔`codex-tokens-compress`: 文字 −34% ∧ token +6%〕は**当 repo では再現しない**)。
⇒ ② **但し英語電文体が 1.5–2.4 倍有利** ∴ 本 skill 冒頭の「英文原文・自作の定型指示文 ⇒
英語電報体が最強」を**当 repo の実文で追認**した。
⇒ **∴ 規: token 削減が目的なら英語電文体を選ぶ。CJK 圧縮を選ぶ理由は「ニュアンス保持」
(日文原文の含意・owner 語彙・法/規の逐語)だけであり、token 節約ではない。**
⚠️ **文字数で自己評価しない**(低頻度漢字は BPE で分割され得る)— 判定は必ず tokenizer で測る。
∧ 当 repo の追跡済 tier 集計は B/tok ~3.1 ∴ **tier 単位の肥大検知に byte を使える**。
個別書換では代理に使わず、上記どおり tokenizer で前後を測る。
## language substitution findings
- 日文手順→中文は、助詞/活用を削り複合語を短くできる場合が多い。簡体/繁体/地域語を固定せず、
文脈ごとに短く明確な言い回しを選ぶ。ただし**文字数≠token数**; target tokenizerで比較できなければ
「短い可能性」とだけ扱い、珍字1字化を目的にしない。
- path / CLI / status / enum / schema key / error literalは翻訳しない。否定(`禁止/不得/≠`)・順序・
owner境界・fail-closed条件は省略しない。
- **reader tier で分ける**(owner 裁定 2026-07-11・Gemini 復号実証 = [[0469]]): 同等能力 LLM 向け
(本 skill の既定 scope)= **容赦無 palette 維持**(閩南語 毋通/著愛・chữ Nôm 等も同 tier では復号実証済)。
共有 skill / SOP(弱 model も読む)= AGENTS 弱model耐性が優先 ∴ 中文の普通語+明示動詞・
一字略語/古語/言語混合で復号に推論を要する形は棄却。
- 圧縮後に fresh reader が `{trigger, steps, output, prohibition}` を原文無しで復元できるか確認する。
**Fresh reader**: `tools/probe/fresh_reader_quiz.py`; frozen fixtures, English literal-copy contract,
strict gold / UNKNOWN / absent-fact fabrication counts. Set `--wall-time-cap`; timeout/incomplete = `UNMEASURED`.
`--min-correct` explicitly enables a gate; report exit 0 alone proves no floor.
Models/command = `.claude/skills/verification-tool-index/index-8-llm.md`.
Revisit failed wording; one reader's pass does not establish stronger-reader recovery or other-lane quality.
## prior art(2026-07-22 一次照合済・全 URL fetch 検証済)
- **Caveman**(`https://github.com/JuliusBrussee/caveman`)= **出力**側を電報体英語化する skill
(自己bench 10 promptのoutput token平均 −65%主張・補正 doc 有・文言文 `wenyan` mode 有)。
本 skill との差分 = 入力/文書側 ∧ 全文 diff 実測手順。
- **ai.rs 検証**(`https://ai.rs/ai-developer/classical-chinese-agent-memory-compression`)= 文言文単独の「−28%」
主張を実測補正(o200k = −13%・cl100k = 悪化)→ **「文言文 + 英語キーの hybrid が最適」= 本 skill の
英中ごたまぜと独立同着** — 結論の外部再現。文字数≠token の罠の実例でもある。
- 学術: LLMLingua 系(`https://arxiv.org/abs/2310.05736` 等)= perplexity 間引き系 = 別 lane
(手書き圧縮と競合しない)。Petrov et al.(`https://arxiv.org/abs/2305.15425`)= 同内容でも
tokenizer・言語依存で token 差最大15×。**普遍的な英語優位は示さない** ∴ tokenizer別実測が正典。
## safe symbol palette
- **ASCII 同等物(`=>` `,` `not` `in` `<=` `:=`)を先に試す**。以下は diff で勝った時のみ。
- logic: `∀ ∃ ∄ ∧ ∨ ¬ ⇒ ⇔ ∵ ∴ ≜ ≠`。集合/写像: `∅ ∈ ∉ ⊂ ⊆ ∩ ∪ |S| f:A→B`。
- 比較/範囲/集計: `< ≤ > ≥ [a,b) Δ Σ`。金融量は初出定義後のみ `P_t q ΔP gross net`。
- `⊥`等の多義記号、未定義の私製glyph、権限/禁止を弱める記号置換は不可。
- **critical negation = 動詞 + 対象/範囲で書く**(`Do not re-add spread`・`--wait-lock does not permit concurrent broker access`)。
`¬`/`not` を operator・断片の前に付けない(`not +spread`・`¬⇒` は 4 回極性反転 = §MiL)。
- token削減はtarget tokenizerで実測。記号が複数token又はfresh readerの復元を悪化させるなら語へ戻す。
- **実測 tier(2026-07-22・o200k proxy・単独入力計測・Claude tokenizer 未計測 [要検証])**: 1tok 勝者 =
単漢字(故無済未禁必要警増減全)・中文複合語(没有/不可/因为)・**文言機能語(勿莫弗非唯止須宜)**・
ASCII(`=> := -> because must done`)・`⇒ → ¬ ∀ ↑ ↓`。**2-3tok = 集合系記号(∴ ∵ ∅ ∈ ≜ ≠)・
絵文字(⚠️=3・❌=2)・方言字(冇唔毋 = 粤語 — 密度高くても学習頻度低 = 珍字罠)**。日文行の
中文(簡体+文言調)訳 = 12 行中 11 勝(−10〜15%・skill 全文で 449→428tok 実測)∴ 中文化 = 有効な第二 pass。
- **⚠️ 単独計測 ≠ 文中効果**(BPE は空白/句読点と結合): 実測で「。故、」= 「 ∴ 」= 文中 9tok 同点
(単独では故1/∴2)∴ **最終判定 = 置換前後の全文 diff で測る**。固定辞書扱い禁・手順(測って選ぶ)が主役。
集合記号は「復元の曖昧性を消す」価値がある時のみ。意味非同値(∈≠是・∅≠無)は critical 文脈で語を残す。
## MiL 検証(2026-09-25・reader = 同等能力 LLM tier のみ・共有 skill/SOP には適用しない)
対象 = @AM09_21 の CC0 圧縮言語 `MiL;C(m):=argmin_tok{s:⟦s⟧=m};R:=sym>logic>abbr>alias>>>EN;del(recoverable);IF:=cond;@:=ext;¬infer;amb→qmin`。
実測: 当 repo 4 文 × o200k/cl100k/Qwen2.5 + qwen3.5:4b 復元 quiz(2 文 × 4 変種・各 1 run・key 事前固定)。
**n 小 ∧ reader 1 model ∴ 以下は傾向であって普遍則ではない**。
- 採る: C(m)(意味固定で token 最小)= 本 skill と同じ目標。code-like structure は b(英語電報体)より安く・復元同等(10/13)。
- 採らない: R の記号優先(実測で逆)・`@` の多義(定義 ext ≠ 使用例 at)。
- **recoverable := 与えられた文面だけから一意に再構成できるもの**(書き手が「推測できる」と思うものは含まない)。
verbatim 不変物(id・owner gate・権限を絞る語・例外・単位・数値・literal・`[要検証]`)を上書きしない。
aggressive del(recoverable) は 4/13 ∧ 禁止権限を「許可」と読ませた。
- **brief 冒頭の reader 契約(prompt/brief 限定・doc/memory には付けない)**: `Do not invent missing facts. If ambiguity blocks action, ask the smallest resolving question; headless: mark UNKNOWN, stop dependent action, continue independent work.`
(計算・論理的演繹は禁じない。不在事実 probe は 8/8 UNKNOWN だが契約なし対照は未測定)
- **tokenizer 差は target で測る**: Qwen 系は数字を 1 桁ずつ割る(実測 1 例 +24% vs o200k)。補正率を固定しない・数値は削らない。
## hard constraints (¬破)
1. **lossless**: ∀ fact + detail が出力から復元可能。density は情報を消さない。
2. **self-decodable**: codebook 無しで**想定 reader tier**(同等能力 LLM 群)が復元できる。density ↔
復元性 = 実 trade ∴「fresh な reader が復元不能になる手前」で止める。「任意の LLM」は検証不能 ∴ 掲げない。
3. **目的 = 最小 token ≠ 最小語**: 珍字は 1 概念でも多 BPE token になり得る ∴ exotic = 自動的に短 ¬。
復元性を保ちつつ **最短 tokenize** を選ぶ(多くは dense な常用字 + 記号; exotic glyph は真に勝つ時のみ)。
## reader tier × palette(owner 裁定 2026-09-02「LLM 間は容赦不要」・AGENTS.md 鉄則が正典)
| reader | 容赦 | 既定 palette | 備考 |
|---|---|---|---|
| owner(人) | 対象外 | 日本語散文 | 本 skill の scope 外 |
| 同等能力 LLM(Codex/Claude/Gemini・自分の次 session・memory) | **無** | **English 電文体**(token 最安)・CJK 混成は nuance 保持時のみ | 敬語/前置き/hedge/保護 boilerplate ∅ |
| 中華圏 model(Kimi/Qwen/DeepSeek・roster 外・将来) | 無 | **English 電文(最安)> 简体普通话(nuance 時)> 文言 hybrid** — 実測 2026-09-02([[1202]] §3・Qwen2.5/DeepSeek-V3/Kimi-K2 tokenizer): en 210–215 / 简体 228–240 / 文言 250–282 / 繁體 247–290 / 粤語 266–314 tok(同一 7 行)| 文言が简体に負けるのは珍字 BPE 分割(§token の罠を中華圏 tokenizer でも追認)。繁體は简体比 +9〜27%。再測定 = 対象 tokenizer を指定した scratch script を用意する(実測時の `tok_compare.py` は repo に無い) |
| その他言語圏 model | 無 | 相手の学習頻度が高い言語 | **固定しない・選択肢を常に残す**(owner 明示要求) |
| 弱 model(共有 skill/SOP の読者) | 有(弱 model 耐性) | 普通語 + 明示動詞 + checklist | AGENTS 冒頭の規が優先 ∴ 本表の「容赦無」は**会話**の規で配布物には及ばない |
不変(全 tier): cmd block・path/flag・数値・重大度 tag・引用・`[要検証]`/`UNMEASURED`・marker・schema required。
## memory 棚卸し pass の実測知見(2026-09-02・44 file・o200k・reader = 自分の次 session)
- **削減の主因 = cut(重複・言い換え・前置き・「Why」の再説明)であって記号/CJK 化ではない**(2026-09-02: 42 file −34%・B/tok 3.0 → 2.9 = palette ほぼ不変)。既に密な note では **prune(repo 記録済 → pointer 1 行)+ 統合(同主題 2 file → 1)が先**(`memory-pruning-freshness` と同順)。統合で消せるのは「撤回済方針」型(教訓だけを親へ 3 行で吸収)。
- **description / 索引 = recall の hook ∴ 1 行で「何の話か」だけ**(2026-09-25: `MEMORY.md` −55% が最大の lever)。索引に結論・数値を写すと、本文だけ訂正された時に古い結論を運ぶ。
- 英語原文の JP 電文化は token 減が小さい。owner 語彙・引用・日付付き実害を含む note は CJK 混成で nuance を保つ(判断基準 = §token)。
- **正確さ > 圧縮率**: 鮮度照合で訂正が増えた file は伸びる。並列 subagent に file 群を割っても、各訂正は当方が source を 1 件ずつ照合する(反証済の主張が 3 群で 15 件以上出た = 照合の方が価値が大きい)。
- 書込経路の罠: Bash heredoc は 1 command ~8 KB 超で `unexpected EOF while looking for matching` → 長文は Write tool。
- **測る**: `uv run --with tiktoken python <scratch>/tokcount.py <dir>`(o200k・file 別 tok/B/B-per-tok)を前後で撃つ。B/tok 不変で tok 減 = cut が効いた・B/tok が動いた = palette が効いた(英語電文化では上がる: 2026-09-25 実測 2.9 → 3.5)。
## output
圧縮結果**のみ**(前置き·説明 ∅)。入力の構造(見出/箇条)は losslessly 潰せる時のみ潰す。
## code docstring / comment(owner 裁定 2026-09-06・規 = `.claude/rules/src-comments.md`・実測 = [[D01295]])
- 対象 = 根拠 prose(why / 契約 / 罠)だけ。**逐語のまま** = id(ADR/review/[[NNNN]])・数値・path/flag・外部仕様引用・否定・例外・`[要検証]`・governance が読む形(`Exit codes:`・`EXERCISE`・`Usage:`)。
- 型 = 英語電報体(`Fail closed: None fixture = caller opted out of venue check (ADR-0286).`)。同 file 内の反復説明は 2 回目から id のみ。
- 削る ≠ 圧縮: banner / 手順番号 / 名前 = docstring / 履歴叙述は cut・根拠は compress。cp932 可の文字だけ(`test_tool_console_encoding`)。
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme