llms-txt-writer
Skill4 starsChanged 35 days agoMITView on GitHub
Write AI-facing documents (llms.txt, llms-full.txt, FAQ pages, glossaries) to the llms.txt standard. Use when a document's only reader is an AI system.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- shimo4228/llms-txt-writerword for word, first seen Oct 10, 2026
Other versions1 project uses a version of this.
Word for word · 1
- shimo4228/llms-txt-writer★ 3100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository51 other files it gives its agents.
- llms-full.txtllms.txt
- llms.txtllms.txt
- agent-sendSkill
- agent-stocktakeSkill
- author-calibrated-evalSkill
- authorship-strategySkill
- collect-contextSkill
- context-syncSkill
- decision-historySkill
- detail-loopSkill
- generation-auditSkill
- harness-boundarySkill
- harness-stocktakeSkill
- harness-syncSkill
- headline-craftSkill
- hf-syncSkill
- hook-stocktakeSkill
- implementation-chainSkill
- jev-judgment-designSkill
- jsonld-knowledge-graphSkill
- learn-evalSkill
- llm-as-judgeSkill
- mono-figureSkill
- persona-read-loopSkill
- plugin-directory-submitSkill
- prompt-perturbSkill
- prose-translationSkill
- public-commentSkill
- readme-writerSkill
- release-doiSkill
- repair-disciplineSkill
- repo-asset-stocktakeSkill
- review-to-lintSkill
- rfc-writerSkill
- rules-distillSkill
- rules-stocktakeSkill
- search-firstSkill
- session-judgment-miningSkill
- skill-complySkill
- skill-healthSkill
- skill-stocktakeSkill
- skill-writerSkill
- social-postSkill
- spawn-sessionSkill
- task-stocktakeSkill
- task-triageSkill
- verify-bootstrapSkill
- widen-the-askSkill
- wiki-harvestSkill
- wiki-querySkill
- x-draftSkill
The file
Files
llms-txt-writer — AI-Facing Writing Skill
AI 検索エンジン(ChatGPT / Perplexity / Gemini)と AI エージェントに引用・参照されることを最適化した文書を書くスキル。静的解析(GEO-SFE)と Answer.AI llms.txt 標準の両方をカバーする。
When to Use
以下のいずれかに該当するとき:
llms.txt/llms-full.txtを新規作成・更新する- FAQ / 用語集など AI 検索引用を狙うドキュメントを書く
- 既存の AI-facing 文書の GEO スコアを診断・改善する
使わない場面:
- README / repo のトップページ(
readme-writerを使う — 証拠スクリプトと、主張をコードとも照らす fresh context の判定器 readme-judge を持つ) - 記事 / エッセイ / ブログポスト等の人間向けコンテンツ(
writing-ecosystemを使う) - 人間可読性を最優先したいドキュメント
Audience Separation: Human vs AI
ドキュメントは 人間 primary か AI primary かで最適化が根本的に異なる。1 ファイルで両立させると、どちらにも中途半端になる。
| 軸 | 人間 primary | AI primary |
| 構造 | 物語的、段落で流れる | Q&A / 定義形式、H2 独立 chunk |
| 見出し | 宣言形で簡潔 | 質問形で 20%+ |
| エンティティ配置 | 文脈に合わせて自然に | 冒頭 30% に 45%+ 集中(ski-ramp) |
| 定義 | 文脈から読み取れる | X is defined as Y を明示 |
| セクション長 | 論点重要度に比例 | 50-150 語 / 150-450 字に揃える |
| 読みやすさ | 最優先 | 犠牲にしてよい |
本 skill は AI primary の最適化のみ扱う。
Answer.AI llms.txt Standard(v2 — as-of 2026-08-23 に一次ソース確認)
llmstxt.org(Jeremy Howard / Answer.AI。2024-09-03 公開、v2 は 2026-08-10 更新)。
spec が定めるのは llms.txt だけ:
- 必須は H1(プロジェクト名)のみ。順序は BOM(任意)→ H1 → 要約 blockquote → 見出し以外の詳細 markdown → H2 区切りのファイルリスト
Optionalセクション = 二次情報。「より短い context が要るときエージェントが スキップしてよいリンク」という意味(機械的な必須/任意の区別ではない)- 発見用の link relation(HTTP
Linkヘッダまたは HTML<link>で提供する):rel="describedby"→ llms.txt 本体、rel="alternate" type="text/markdown"→ markdown 版ページ .mdURL 規約:page.html.md(付加)/page.md(置換)/ ルートはindex.html.mdまたはindex.md- サブパスの llms.txt: 「A file covers the URLs under its path」。複数該当するときは 最も具体的なものを使う
llms-full.txt は spec に無い(llms_txt2ctx の context expansion も v2 の本文に記載なし)。
以下の 2 ファイル構成はコミュニティ慣行として本 skill が採る運用であって、標準準拠ではない:
| ファイル | 役割 | 内容 | サイズ目安 |
llms.txt | Navigator(spec 準拠) | H1 + 要約 blockquote + H2 カテゴリ + bullet リンク列 | ~5 KB |
llms-full.txt | 自己完結型コンテンツ(spec 外の慣行) | FAQ + 用語集 + 引用参照などの full content | ~20 KB |
llms.txt(Navigator)の標準フォーマット
# Project Name
> 1-2 文の要約。何を提供するプロジェクトか。
## Core documentation
- [Full AI Reference](llms-full.txt): self-contained content
- [README](README.md): human-facing narrative
- [Contributor guide](CLAUDE.md): ...
## Architecture
- [Architecture overview](docs/...): ...
## Related
- [Related repo](https://...): ...llms-full.txt の標準フォーマット
# Project — AI Reference
Intro paragraph(audience が AI である明示を含む).
> **Audience**: AI search engines and AI agents.
## Project Facts
(エンティティ爆弾 bullet リスト)
## Prior Research References
(引用テーブル、冒頭配置で ski-ramp 効く)
## What is X? (Q1)
(50-150 語の回答)
## How does Y work? (Q2)
...三層構造(README と合わせて)
my-project/
README.md → human-facing narrative(人間向け)
llms.txt → AI navigator(~5 KB、link 主体)
llms-full.txt → AI self-contained content(~20 KB、Q&A + 定義)責務完全分離。overlap なし。
GEO/AEO 静的解析 (GEO-SFE 3 階層)
実証研究ベースの閾値:
| 指標 | 研究値 | 出典 |
| 冒頭30%からの引用割合 | 44.2% | Victorino LLC (1.2M ChatGPT 回答分析) |
| 最適チャンクサイズ | 50-150 語 | The Digital Bloom (2.3x 引用) |
| エンティティ密度 | 20.6% | Victorino LLC (通常英文 5-8%) |
| 質問形式見出し効果 | 2.8x 引用 | Position Digital |
| 定義的表現引用率 | 36.2% vs 20.2% | Omniscient Digital |
| フレームワーク | GEO-SFE マクロ/メソ/ミクロ | arXiv:2603.29979 |
5 Checks
| 階層 | チェック | OK 条件 |
| マクロ | スキーランプスコア | 冒頭 30% に 45%+ のエンティティ集中 → 50+ |
| メソ | チャンク自己完結性 | セクションの 80%+ が範囲(en: 50-150 語、ja: 150-450 字) |
| メソ | 質問形式見出し率 | ? ? か。 終了の ## が 20%+ |
| ミクロ | エンティティ密度 | 全体の 15%+ |
| ミクロ | 定義的表現密度 | 1.0+ / 100 words (en) または 0.5+ / 100 chars (ja) |
重要: スクリプトは H2 (##) のみをカウントする。H3 以下は親 H2 chunk にマージされる(AI 検索エンジンが引用単位として H2 chunk を使う設計)。FAQ Q&A は すべて H2 に並べる。
Execution
以下のパスは
${CLAUDE_SKILL_DIR}(この SKILL.md のあるディレクトリ)から始まる。変数を置換しないエージェントでは、そのディレクトリと読み替える。
uv run --directory "${CLAUDE_SKILL_DIR}" python -m scripts.geo_check "$ARGUMENTS"引数は解析対象 Markdown / llms-full.txt の絶対パス。--json を付けると機械可読 JSON を出力。
Post-script Interpretation (解釈レイヤー)
script の stdout 数値レポートを受け取ったら、Claude は以下を必ず行う:
1. FAIL / WARN 項目ごとに具体的な修正案を提示する
- 質問見出し率 FAIL: 対象の
##見出しから 1-2 個を選び、質問形式の 2 案を提示- 例: 「背景」 → 「なぜ GEO は主戦場になったか?」「GEO はどこから来たか?」
- エンティティ密度 WARN/FAIL: script が出力する「薄い段落」を特定し、固有名詞(ブランド / ツール / 人名 / arXiv 番号)を 3-5 個候補提示
- スキーランプスコア WARN/FAIL: 以下の「Practical Ski-ramp Optimization」を参照
- チャンク範囲外: 長すぎるセクションは分割点を具体指示、短すぎるセクションは統合候補を提示
2. script が判定できない質的観点を補う
- 数値上 OK でも、定義的表現の中身が空洞(「X とは Y」だけで Y が曖昧)なら指摘する
- エンティティが抽象度高すぎる(「AI」「LLM」だけで具体製品名がない)なら具体化を勧める
- 冒頭 30% に数値はあるが「読者の why」が不在なら、問題提起の追加を勧める
3. Edit 提案は diff 形式で分割して提示
ユーザーが y/n 承認できる粒度(1 提案 = 1 edit)にする。一括書き換えはしない。
Practical Ski-ramp Optimization (実戦知見)
ski-ramp(冒頭 30% にエンティティ 45%+ 集中)は素の Q&A 文書では届かないことが多い。以下の手法で押し上げる。
手法 1: Project Facts ブロックを冒頭に
タイトル・要約の直後にエンティティ爆弾 bullet リストを置く:
## Project Facts
- **Version**: 2.0.0
- **DOI**: 10.5281/zenodo.XXXXXXX
- **License**: MIT
- **Tests**: NNNN passing
- **Runtime**: Python 3.10+, Qwen3.5 9B, nomic-embed-text 768-dim
- **Dependencies**: requests, numpy, rank-bm25
- **ADRs**: N (ADR-0001 through ADR-NN)
(その他具体数値・ブランド名・パス等を 15-20 個)version 番号、DOI、テスト数、モデル名、依存パッケージ名、パス — 数字と固有名詞が連続するので entity 密度が跳ね上がる。
手法 2: Prior Research / References テーブルを冒頭に
学術論文テーブルは entity の宝庫(著者名・年・arXiv 番号・ジャーナル名)。末尾ではなく Project Facts の直後に置く:
## Prior Research References
| Short Name | Full Citation | Relation |
|---|---|---|
| A-MEM | Xu et al. (2025). arXiv:2502.12110 | ... |
| Zep | Rasmussen et al. (2025). arXiv:2501.13956 | ... |
...手法 3: 用語定義の - Prior research: bullet を削除
各用語定義に - **Prior research**: Xxx et al. (2025) ... を書くと、それらが back half の entity 密度を押し上げる。冒頭にテーブルがあれば重複なので削除する。情報損失なし、entity 分布だけが前に寄る。
実戦事例
contemplative-agent プロジェクト(2026-04-19):
- 施策前: ski-ramp 23.5% FAIL
- 手法 1 (Project Facts) 単独: 23.5% → 28.4%(改善軽微)
- 手法 1 + 2 + 3 の合わせ技: 23.5% → 55.0% ✅ OK
- 全 5 指標 OK 達成(question_heading 0.91, chunk 0.83, entity 0.31, definition 1.79)
教訓: 手法 1 単独では効果薄。手法 2(前置き)+ 手法 3(重複削除)が ski-ramp 押し上げの本体。
Anti-patterns
- キーワードを詰め込まず、可読性を保つ(詰め込みは AI 側の判定でもマイナス)
- 数値判定は script に任せ、Claude は §2 の質的観点だけを足す(script の決定論性を保つ)
Companion JSON-LD Graph (Optional)
Project が安定した concept-level 構造(matrix / hierarchy / phase-binding 等)を持ち、prose だけでは LLM に triple として伝えにくい場合、graph.jsonld を companion file として置ける。
llms.txt / llms-full.txt 側でやること:
llms.txt冒頭に Graph-first reading order block 追加(> AI agents should read graph.jsonld firstblockquote + numbered "Recommended reading order" section)## Core documentationの 最上位 に navigator entry を追加("Read first" qualifier 推奨)llms-full.txt末尾に question-form H2("How do X and Y relate as a graph?")を追加し graph.jsonld を参照(question-form は 2.8x citation boost)- README 側の置き方は
readme-writerが正本(本 skill は README に手を入れない)。導線は readme-writer の LLM-read フロア(README 末尾の<details>、link-map)に入る(ADR-0091)。README の冒頭に別の<details>block を足さない - hub-and-spoke topology の場合、line 側 README から hub graph への reverse-link を上記の平文行に含める(配置の判断は
readme-writer)
graph 自体の設計、schema vocabulary、cross-graph @id 規約、file-level 構造との役割境界、verification workflow は別 skill が正本を持つ。
See skill: jsonld-knowledge-graph
Verification
cd "${CLAUDE_SKILL_DIR}"
uv sync --dev
uv run pytest tests/ --cov=scripts --cov-report=term-missingfixtures/sample_ja.md と sample_en.md で基本挙動を確認できる。
Related
writing-ecosystemskill(~/MyAI_Lab/zenn-content常駐)— 人間向け執筆の orchestrator(役割は完全に分離。本 skill は AI 向けのみ)- llmstxt.org — Answer.AI llms.txt 標準の原典
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

