Dance with Agents

Markdownってなんだろう——CLAUDE.mdも、READMEも、正体は同じ

.mdという拡張子は、あちこちにある

CLAUDE.md、README、GitHubのissue(課題を書き留める場所)やプルリクエストの説明欄、そしてこのサイトの記事そのもの。エージェントと開発をする場では、.mdという拡張子のファイルがやたらと登場します。正体は全部同じで、Markdown(マークダウン)という書式で書かれたプレーンテキスト——飾りのない、文字だけのファイルです。

Markdownは、誰が何のために作ったのか

Markdownは、2004年にJohn Gruberが公開した書式です。設計の目標を、本人はこう説明しています。

“The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible.”

(Markdownの書式が目指した最大の設計目標は、できる限り読みやすくすること)

もう少し具体的に言うと、タグだらけのHTMLに見えず、そのままプレーンテキストとして読める・公開できることを目指した書式です。HTMLで<strong>強調</strong>と書くところを、Markdownなら**強調**と書くだけで済みます。記号は最小限、読みやすさは最大限、という発想です。

Markdownの基本の記法

覚えることは多くありません。よく使うものだけ挙げます。

書きたいもの 書き方 見た目
見出し ## 見出し 大きな文字の見出し
太字 **強調** 強調
箇条書き - 項目 ・項目
番号つきリスト 1. 項目 1. 項目
リンク [表示名](URL) 表示名(クリックできるリンク)
コード(1行) `code` code(等幅フォント)
コードブロック ``` で前後を囲む 複数行のコードをそのまま表示
表 | A | B | 表組み
引用 > 引用文 字下げされた引用

見た目を整える記号を、そのまま丸暗記する必要はありません。#は見出し、*は強調やリスト、`はコード——この3種類の記号の役割さえ押さえておけば、たいていのMarkdownは読めます。

なぜMarkdownが、エージェント時代にこれほど使われているのか

理由は単純です。文字だけのファイル(プレーンテキスト)だから、エージェントが読み書きしやすい。 画像や複雑なレイアウトを持つWordファイルと違い、Markdownはただの文字の並びです。エージェントにとっては、読むのも書くのも、他の文章と変わらない扱いでできます。

Gitの基本的な使い方とも相性がいい。変更を「差分」として管理する仕組みなので、1行ごとの変更を追いやすいプレーンテキストのほうが向いています。

チャットでのエージェントの返答も、たいていMarkdownで返ってきます。見出しや箇条書き、太字が使われた読みやすい返答は、裏側でMarkdownとして生成され、表示側で変換されているものです。

同じ.mdでも、中身の役割は違う

.mdだからといって、中身の目的は一様ではありません。

  • CLAUDE.md——人間が書く、エージェントへの指示書。下で説明するfrontmatterは使わず、鉄則を書き並べる形が多い
  • README——リポジトリを作るときに添えられる説明書。何のプロジェクトか、使い方はどうか、を書く定番の置き場所
  • このサイトの記事——冒頭にYAML形式のfrontmatter(titleやcategoryのような設定)をつけたMarkdown。同じ.mdでも、冒頭にこの一区画があるかないかで、用途がだいぶ変わります。YAMLについては、また別の記事で扱います

記号がそのまま見えてしまうのは、変換する側がいないとき

Markdownは変換されて初めて見た目が整う書式です。GitHubやこのサイトのようにMarkdownを解釈する場所で見れば、## 見出しはちゃんと大きな見出しになります。ただしcatでターミナルにそのまま出したり、対応していないメモ帳で開いたりすると、#や**の記号がそのまま文字として残ります。

エージェントとのやり取りでも同じです。環境によって記号がそのまま表示されることもあれば、太字やリストとして整形されて見えることもあります。「記号が見えるのは壊れているからではなく、変換する側がいないだけ」と知っておくと、慌てずに済みます。

日本語の強調で、このサイトが踏んだ罠

一見単純な書式ですが、日本語で書いていると踏みやすい罠が1つあります。強調にした語句を、鉤括弧(「」)でくくったときです。

✗ 最上位は**「難所で出す切り札」**です。
○ 最上位は「**難所で出す切り札**」です。

上の書き方だと、太字として変換されず、**という記号がそのまま画面に残ります。 CommonMark——Markdownの曖昧さを解消するために2014年に作られた仕様——のルール上、**の直後に「のような約物(句読点や括弧などの記号)が来ると、強調の開始とみなされない場合があるためです。開くカッコの外に**を置かず、カッコの内側に強調を収める書き方に変えると解決します。

このサイトでは何度もこれを踏んだので、最終的にサイト側で自動的に太字へ直す仕組みを用意しました。Markdownを変換する部分にプラグインを足して、取り残された**を強調に変換しています。

ただし、これはこのサイトだけの対策です。GitHubやObsidian、他のツールで同じファイルを開けば、**はそのまま出ます。 どこで読まれても大丈夫なようにしたいなら、やはりカッコの内側に**を収めるのが確実です。

まとめ

  • .mdは全部同じ書式(Markdown)。ただし中身の役割はファイルごとに違う
  • 目標は「プレーンテキストのまま読める・書ける」こと。記号は最小限
  • #(見出し)・*(強調・リスト)・`(コード)の3種類を覚えれば、たいてい読める
  • エージェント時代に広まったのは、プレーンテキストだから機械にも扱いやすいという理由が大きい
  • 日本語の強調(**「〜」**)には、太字に変換されない罠がある。カッコの内側に**を収めると安全

フォーマットの記事

フォーマットのページへ →