AIコーディングをする際、AIに事前にルールを定義しておくことができます。
その際に使用するのが「.md」の拡張子のファイルです。
本記事には、あまり聞きなれない「.md」ファイルについて書いています。
.mdってなに?「文章を書くためのファイル」
.mdは「マークダウン(Markdown)」というファイル形式です。中身はただの文字。Wordのように装飾ボタンを押す代わりに、記号を使って見た目を表現します。
たとえば、
- 行の先頭に
#を書くと「見出し」になる - 文字を
**で囲むと「太字」になる - 行の先頭に
-を書くと「箇条書き」になる
これだけのシンプルなルールです。
なぜわざわざMarkdownを使うのか
Wordは便利ですが、「見た目の情報」がファイルの中にぎっしり詰まっています。
一方Markdownは中身がただの文字だけなので、
- 軽い(ファイルサイズが小さい)
- どんなパソコンでも開ける
- 人間が読んでもわかる
- コンピューターやAIが読み取りやすい
という特徴があります。最後の点が大事で、AIに何かを読ませたいときにとても都合がいいのです。
メモ帳でも書ける
.mdファイルは特別なソフトがなくても、Windowsのメモ帳やMacのテキストエディットで書けます。ファイルを保存するときに、名前をmemo.mdのように.mdで終わらせるだけです。
対応ソフトで開くと「きれいに表示」される
メモ帳で開くと記号がそのまま見えますが、Markdown対応ソフト(たとえばGitHub、Notion、Obsidianなど)で開くと、#が大きな見出しに、**が太字に、自動で変換されて表示されます。同じファイルでも、見るソフトによって「ソースコード状態」と「きれいに整形された状態」を切り替えられるイメージです。
どんなときに使われるか
プログラマーが説明書を書くとき、ブログ記事を書くとき、メモを取るとき、そして最近ではAIに指示やルールを書いておくときにもよく使われます。
.mdファイルの開き方。
中身はただのテキストなので、何で開いても読めます。
ただ、記号がそのまま見えるか、見出しや太字として表示されるかが変わります。
| 開き方 | 見え方 |
|---|---|
| メモ帳 / テキストエディット | 記号がそのまま見える。中身の確認だけならこれで十分。 |
| VS Code | 記号のまま。プレビューに切り替えると整形して見られる。 |
| Obsidian / Typora などの専用エディタ | 最初から整形された状態で見える。 |
| GitHub・Backlogなどにアップ | 自動で整形して表示される。 |
ファイルをダブルクリックしても開かない場合は、右クリックから「プログラムから開く」を選んでください。メモ帳やVS Codeを指定すれば開きます。
VS Codeなら、整形した状態で見られます。
VS Codeで .md を開くと、最初は記号がそのまま表示されます。
エディタ右上のプレビューのアイコンを押すと、見出しや太字が反映された状態に切り替わります。
書きながら確認したいときは、左に記号、右にプレビューを並べて表示すると作業が早くなります。
.mdファイルの作り方。
専用のソフトは要りません。拡張子を .md にするだけです。
- メモ帳を開いて、中身を書く。
- 「名前を付けて保存」を選ぶ。
- ファイルの種類を「すべてのファイル」に変える。
- ファイル名を
memo.mdのように、.mdを付けて保存する。
ここで「ファイルの種類」を変えないと、memo.md.txt という名前で保存されてしまいます。
拡張子が見えないときは、表示設定を変えます。
Windowsは初期状態だと拡張子が隠れています。これだと .md になっているか確認できません。
エクスプローラーの「表示」メニューから「ファイル名拡張子」にチェックを入れてください。
これで memo.md なのか memo.md.txt なのかが一目で分かります。うまく開けないときは、まずここを疑ってください。
PDFやWordに変換する。
社内で共有するときなど、.md のままでは渡しにくいことがあります。
方法はいくつかあります。
- VS Codeの拡張機能を使う。「Markdown PDF」などを入れると、右クリックからPDFやHTMLに書き出せます。
- プレビューをコピーして貼る。整形された状態をそのままWordに貼り付ければ、見出しや太字が生きたまま移せます。
- ブラウザで印刷する。GitHubなどに上げて表示させ、ブラウザの印刷からPDFで保存する方法もあります。
ただ、渡す相手がエンジニアなら、そのまま .md で渡して問題ありません。変換が必要かどうかは、相手次第です。
AIに対するルールやガイドラインをMarkdown(.md)ファイルで定義する。
Markdown(.md)ファイルで定義する手法は、ここ数年で急速に広まりました。プレーンテキストでありながら見出しやリストで構造化でき、人間にもAIにも読みやすいことが理由です。代表的なものを整理して紹介します。
ツールごとの代表的なファイル
CLAUDE.md(Claude Code) AnthropicのコーディングエージェントであるClaude Codeが、プロジェクトのルートやサブディレクトリに置かれたCLAUDE.mdを自動的に読み込みます。プロジェクト固有のビルドコマンド、コーディング規約、アーキテクチャの概要、「やってはいけないこと」などを書いておくと、Claudeがそれを踏まえて作業します。~/.claude/CLAUDE.mdに置けばユーザー全体のグローバル設定として効きます。
AGENTS.md OpenAIのCodex CLIをはじめ、Cursor、Aider、Jules、Amp など複数のエージェントツールが共通でサポートしようとしている「業界標準」を目指したフォーマットです。中身はCLAUDE.mdと似たもので、ツール非依存に書けるのが利点です。
.cursor/rules/*.mdc(Cursor) Cursorは旧来の単一ファイル.cursorrulesから、.cursor/rules/ディレクトリ配下に複数の.mdc(Markdown + YAMLフロントマター)を置く方式に移行しました。フロントマターでルールの適用範囲(対象ファイルのglob、常時適用か手動呼び出しかなど)を指定できます。
.windsurfrules / .windsurf/rules/(Windsurf) Codeium Windsurfも同様の仕組みを持ちます。
.github/copilot-instructions.md(GitHub Copilot) リポジトリ内に置くとCopilot Chatが自動で参照します。
CONVENTIONS.md(Aider) Aiderでは--read CONVENTIONS.mdで明示的に読み込ませる慣習があります。
SKILL.md(Anthropic Skills) Claudeが特定のタスク(Word文書作成、PDF処理など)を行う際に読み込む手順書です。YAMLフロントマターにnameとdescriptionを書き、本文に手順やベストプラクティスを記述します。ファイル名は必ずSKILL.mdで固定です。
中身に書く典型的な内容
技術スタックと使用ライブラリのバージョン、ビルド・テスト・デプロイのコマンド、命名規則やフォーマッタの設定、ディレクトリ構成と各モジュールの責務、外部APIや認証情報の扱い方、コミットメッセージやPRのスタイル、「触れてはいけないファイル」「禁止パターン」、過去にハマった落とし穴とその回避策、といったところが定番です。
書き方のコツ
第一に、具体的で短く。「きれいなコードを書け」のような抽象論はAIにはほぼ効きません。「fetchではなくsrc/lib/http.tsのapiClientを使う」のように、行動レベルで指示します。
第二に、理由を添える。「なぜそうするか」を一文足すと、想定外の状況でもAIが趣旨を汲んで判断できます。
第三に、例を入れる。Good例とBad例を並べると精度が大きく上がります。
第四に、階層化する。プロジェクト全体に効く一般則と、特定サブシステムだけのルールは別ファイルに分けるとメンテしやすく、トークン消費も抑えられます。CursorやClaude Codeはサブディレクトリのルールファイルを自動で見つけてくれます。
第五に、更新を前提に書く。これらは「育てる」ドキュメントです。AIが間違えるたびに該当ルールを追記していくと、徐々にプロジェクト固有の知見が蓄積されます。
注意点
ルールファイルは毎回コンテキストに読み込まれるため、長くなりすぎるとトークン消費が増え、本来の指示が薄まります。500〜1500行を超えるようなら分割を検討してください。また、機密情報(APIキー、本番URL、社内固有名詞でセンシティブなもの)を書き込んでGitHubに公開してしまう事故が起きやすいので、.gitignoreでの扱いも最初に決めておくと安全です。