「あの資料、どこに置きましたっけ」。Claude Codeに仕事を任せていると、この確認が何度も戻ってきます。
置き場を決めないまま使い始めると、AIエージェントは同じ資料を毎回探し直します。探し直すたびに、こちらは「どれが今の正本か」を答えることになります。答えている時間は、任せたはずの時間から引かれていきます。
この記事は、その往復を初日に減らすためのプロジェクト構成を扱います。素材は公式ドキュメント4件と、運営元WEBMARKSのCLAUDE.mdに書かれた置き場のルールです。
こんなふうに調べていませんか
- Claude Codeに資料を渡したいが、どのフォルダへ何を置くのか決めきれない
- フォルダは分けた。ただ、AIが古い版を正本として読んでしまう
- 仕上がった資料を勝手に書き換えられたくないが、止め方が分からない
この記事を読み終えたときに手に入るもの
- 完成版・中間物・旧版の置き場を、初日に切り分けられるようになります
- 散らばった成果物を、案件IDひとつで引き寄せられるようになります
- 完成版への書き込みを、設定ファイルの記述で止められるようになります
結論30秒でわかる、この記事の結論
- プロジェクト構成とは、完成版と中間物をどこで切り、散らばったものをどの文字列で結び直すかを初日に決める作業です。
- 切っただけでは足りません。読む先を宣言し、書き込みを拒否ルールで押さえて、はじめて置き場が固定されます。
- 決めた構成が働いているかは、フォルダの有無ではなく、同じIDで引いたときに関わる資料が集まるかで確かめます。
進行役は3人です。若葉さんが用語の側から聞き、高梨課長が自分の手で組む側から聞き、鈴木さん(本誌監修)が答えます。
01Claude Codeのプロジェクト構成って、AIエージェントの何を変えるんですか?
若葉さんフォルダの名前を決めるだけの話に聞こえるんですが、それで何が変わるんでしょうか。
鈴木さん玄関のどこに鍵を置くかを決めるのに似ています。決めていないと、出かけるたびに家じゅうを探すことになりますよね。探す時間そのものより、毎回思い出す手間のほうが重いんです。
Claude Codeのプロジェクト構成とは、完成版・中間物・案件IDのつなぎ方を初日に決めておく初期設計です。
決めることは3つあります。第一に、仕上がった成果物と作業途中の中間物を、最初から別のフォルダへ置きます。第二に、案件ごとに1つのIDを振り、成果物・記録・進捗ファイルを同じIDで結びます。第三に、中間物や旧版を読む先から外し、AIエージェントが毎回見にいく場所を1つに絞ります。
| 決めること | 何を分けているのか | 効いてくる場面 |
|---|---|---|
| 完成版と中間物の分離 | 書き換えてよいものと、よくないもの | 探す場所を毎回1か所に絞れる |
| 案件IDでの串刺し | 同じ案件のものと、別案件のもの | 名前や更新日時に頼らず合流できる |
| 読む先の限定 | 今の正本と、そうでないもの | 古い情報を正本と取り違えない |
この3つを後回しにすると、資料が増えるたびに「どれが最新か」を人とAIエージェントの両方が推測することになります。フォルダを作った時点で決めておけば、同じ問いを繰り返さずに済みます。
たとえに置き換えると、覚えるべきものがフォルダ名ではないと分かります。棚の名前ではなく、棚ごとの扱いを覚えるのが、この設計の中身です。
この記事では、3つそれぞれの作り方と、書き込みを技術的に止める設定、そして動作確認までを順に示します。中間物が承認を経て格上げされる流れ(誰がいつ判断するか)は扱いません。
02完成版と中間物を分けないと、AIエージェントはプロジェクト構成のどこを見にいくんですか?
完成版と中間物が同じフォルダに並んでいると、AIエージェントは編集してよいファイルとよくないファイルを見分けられません。ファイル名も更新日時も、その区別までは教えてくれないからです。物理的に別の場所へ置くことが、最初に決めるフォルダ構成になります。
運営元WEBMARKSのCLAUDE.mdは、この分離を4つの置き場で定義しています(2026-08-02時点の記載を確認)。
案件フォルダ/
├ 納品/ ← 承認済みの現行版のみを置く
├ _work/ ← 中間物。読む先としない
├ retired/ ← 旧版。削除せず移動して残す
└ _MANIFEST.md ← この案件のIDと正本情報を書く1ファイル| 置き場 | 何を置くか | 誰が書き込むか | 毎回参照するか |
|---|---|---|---|
| 納品/ | 承認済みの現行版のみ | 承認された変更だけ | する(ここが正本) |
| _work/ | 作業中の下書き・素材 | 作業中は自由に書き込む | しない(中間物) |
| retired/ | 差し替え前の旧版 | 移動のみ。編集しない | しない(復元用) |
| _MANIFEST.md | 案件IDと正本情報 | 案件開始時に1回作成する | する(IDの参照元) |
先頭にアンダースコアを付けた_workという名前自体も、一覧で目立たせない意図を持つ命名です。開いた人が、名前だけで「ここは中間物置き場だ」と受け取れる状態を作ります。
2軸へ置き直すと、表では隣り合って見える4つが、別々の区画へ散らばります。同じ区画に2つ入らないという形が、分けられている状態です。逆に、どこかの区画へ2つ入るなら、その2つはAIエージェントから見て区別がついていません。
この章のまとめ
分けるとは、フォルダを増やすことではありません。書き換えてよいかと、毎回見にいくかの組み合わせを、置き場ごとにひとつへ固定することです。
03案件IDは、プロジェクト構成の中でAIエージェントに何をたどらせるんですか?
高梨課長置き場を分けたら、今度は同じ案件のものが別々の場所に散りました。これは自分でたどるしかないんでしょうか。
鈴木さんそこをつなぐのが案件IDです。荷物に貼る伝票番号のようなもので、番号さえ同じなら、棚が違っても一度の検索で集まります。
案件IDは、CASE-作成日-部門-案件名のような形式で1つ発行し、次の3か所へ同じ文字列を書き込みます。
- 成果物のファイル名、またはfrontmatter
_MANIFEST.md(案件ルートに置く1ファイル。IDと正本情報を書く)- 作業ログ・進捗記録(担当者や部署が書く実行記録)
WEBMARKSのCLAUDE.mdは、この3か所を同じIDで結ぶ運用を定めています(2026-08-02時点の記載を確認)。3か所とも同じ文字列で引ければ、ファイル名の表記ゆれや更新日時の前後関係を推測せずに済みます。
IDを振らずに運用すると、代わりに使われるのはファイル名の似かたと更新日時です。ところが更新日時は、複製や同期のタイミングで簡単にずれます。運営元でも、更新時刻だけを根拠に原因を誤診した事故が起きています。詳しくはAI運用の障害の原因切り分け|証跡で追う4段の順序で扱っています。
前後で入れ替わったのは、探す速さではありません。手がかりの性質です。名前の似かたと更新日時は、状況からの推し量りです。案件IDは、作った側が書き残した申告です。推し量りは当たっているあいだ動いているように見えますが、外れたときに気づく手立てが残りません。
案件の状態(進行中・承認待ち・完了)をどう管理するかは、この記事の範囲外です。IDを軸にした記録の設計はClaude Codeの初期設定|AIエージェントに任せる前の4観点の「記録」の観点でも扱っています。ここで示したのは、IDを複数のファイルへ物理的に書き込む、という一段手前の設計です。
04検索対象から外すって、プロジェクト構成の中でAI社員に読ませないという意味ですか?
「検索対象から外す」は、機密だから隠すという意味ではありません。中間物や旧版を、AIエージェントが正本と取り違えないように扱う、という意味です。
混ざりやすいのは、機密性の軸と完成度の軸です。次の表で切り分けます。
| 軸 | 決めること | 扱っている記事 |
|---|---|---|
| 機密性(public/internal/restricted) | 誰が読んでよいか | AIエージェントに機密情報を渡さない|3段階の分離と検査 |
| 完成度(納品/_work/retired) | どれが今の正本か | 本記事 |
| 状態遷移(wip→承認→格上げ) | いつ・誰が正本へ昇格させるか | 本記事では扱わない |
_work/配下のファイルは、社外秘ではなく単に「今は中間物」なだけのことが多くあります。機密の判定はフォルダ構成ではなく、公開範囲の3段階で別途行います。
だから_work/をReadで拒否する必要はありません。読めなければ、AI社員はそこで作業そのものができなくなります。読み取りごと拒否するのは、機密を理由に隔離するrestricted側の役割で、完成度の軸である_work/の役割ではありません。
重ねてみると、円の大半は重なりません。両方の理由を同時に持つのは、外へ出せない書きかけのように、限られたものだけです。重なりの狭さが、扱いを一括にできない理由になります。読ませない側の作法をそのまま持ち込むと、作業に要る素材まで読めなくなります。
05CLAUDE.mdに書くだけで、Claude CodeのAIエージェントは本当にそこを避けてくれるんですか?
若葉さん「_work/は見ないでください」と書いておけば、それで済むんじゃないですか。
鈴木さん半分は済みます。ただ、書いたものは指示であって、仕組みではありません。指示は読まれ方で効き目が変わります。掲示と、鍵のかかった扉の違いだと思っています。
読む先から外す方法は2つあります。
第一に、命名で示す方法です。アンダースコアの接頭辞やretiredという名前自体が、人にもAIエージェントにも「ここは今の正本ではない」と伝えます。
第二に、CLAUDE.mdへ明記する方法です。「_work/は中間物であり、読む先としない」という一文を書けば、AIエージェントはセッション開始のたびにこの前提を読み込みます。
ただしCLAUDE.mdの指示は強制力を持ちません。公式ドキュメントも、権限設定は仕組みとして強制されると説明しています。CLAUDE.mdの指示はAIエージェントの判断を形づくるだけで、動作を強制する層ではありません(出典: Claude Code公式ドキュメント)。守らせたい境界には、後述する書き込み拒否ルールを重ねます。
積み上げると、覆う広さと止める強さが逆を向いていると分かります。命名はどの置き場にも届きますが、破っても何も起きません。拒否ルールは狭い範囲にしか届きませんが、その範囲では実行の手前で止まります。だから3つは選択肢ではなく、下から順に重ねるものです。
旧版をretired/へ移すときは、削除してから作り直すのではなく、移動で残します。フォルダを削除して同じ名前で作り直すと、共有リンクや参照が古い実体を指したまま切れます。運営元でも2026-07-10、社内のGoogleドライブでこの操作によって共有リンクが一斉に切れた事故がありました。詳しくはGoogle ドライブの共有リンクが切れる真因|IDと3つの恒久対策で扱っています。
この章のまとめ
書いた指示は、読まれ方で効き目が変わります。変わってほしくない境界だけを、指示から仕組みの側へ移します。
06旧版はプロジェクト構成から消してよいんですか、AIエージェントのために残すんですか?
旧版をretired/へ移すときは、削除してから作り直すのではなく、移動で残します。フォルダを削除して同じ名前で作り直すと、共有リンクや参照が古い実体を指したまま切れます。運営元でも2026-07-10、社内のGoogleドライブでこの操作によって共有リンクが一斉に切れた事故がありました。詳しくはGoogle ドライブの共有リンクが切れる真因|IDと3つの恒久対策で扱っています。
同じ名前のフォルダができあがるので、見た目の結果は変わりません。変わるのは、外から指されている先が生きているかどうかです。作り直しは名前を復元しますが、指されていた実体までは復元しません。
この章のまとめ
退避は片づけではなく、保険です。戻せる状態を残すために、消さずに動かします。
07Claude Codeのプロジェクト構成は、AIエージェントの書き込みをどこで止めるんですか?
高梨課長拒否ルールを一行書けばいい、という話でしたが、どこへ何と書くのでしょうか。
鈴木さんEditと書きます。ここでWriteと書きたくなるんですが、その形は受け取ってもらえても、判定には回りません。
置き場を分けただけでは、AIエージェントが誤って納品/へ直接書き込む経路は残ります。ここを技術的に止めるのが権限設定です。
Claude Codeのファイル権限は、パスの単位ではEdit(path)ルールだけで判定されます(出典: Claude Code公式ドキュメント)。呼び出すツールがWriteでもEditでも、この判定基準は変わりません。Writeツール名でパスを指定した形を書いても、判定には使われません。
{
"permissions": {
"deny": ["Edit(納品/**)"]
}
}このルールは納品という名前のフォルダを、ディレクトリの深さに関わらず拒否対象にします(出典: 同)。_work/やretired/にはこのルールを置かず、書き込みを許した状態のままにします。
並べると、違いは書き方の好みではなく、受け取られることと判定に回ることのあいだにある段差だと分かります。受け取られた設定は、ファイルの中では正しく見えます。判定に回っていないことは、画面上には何も現れません。
08拒否ルールは、AI社員も使うClaude Codeの設定ファイルのどこへ書くんですか?
この設定は.claude/settings.json(プロジェクト共有)へ書けば、個人の設定で緩めることはできません。denyルールはどの階層で宣言されていても、他の階層のallowより先に評価されるためです(出典: Claude Code公式ドキュメント)。チーム全員へ効かせたいときは、個人設定ではなく共有の設定ファイルへ書きます。
順番を並べると、書いた場所の上下と、評価される順番が一致していないと分かります。個人の設定は手元に近い場所にありますが、拒否の判定はそれより手前で終わります。だから共有側へ置いた一行は、あとから手元の設定で緩められません。
公式ドキュメント側には、バージョンの注記も置かれています。Writeツールへのパス指定ルールは、受理はされても判定には使われない、という仕様です(出典: 同)。版が上がっても、パスで守りたい対象はEdit(path)へ書く、という考え方自体は動きません。配分そのものの決め方はClaude Codeの権限設定|AIエージェントに任せる範囲と3列の配分で扱っています。
09Claude Codeのプロジェクト構成が効いているか、AI導入の現場ではどう確かめるんですか?
設計しただけでは、働いているかどうかは分かりません。次を実行して確認します。
# 1. 3つの置き場とMANIFESTが揃っているか確認する
ls 納品/ _work/ retired/ _MANIFEST.md
# 2. 案件IDがMANIFESTに書かれているか確認する
grep -m1 "case_id" _MANIFEST.md
# 3. 納品/への書き込み拒否ルールが登録されているか確認する
grep "納品" .claude/settings.json
# 4. 新しい成果物のIDと、記録側のIDが一致するか照合する
grep -rl "<発行したID>" _MANIFEST.md 作業ログ/ 成果物/ 2>/dev/null上の3つは、置き場と設定ファイルが「置いてあるか」の確認です。最後の1つだけが、運用が「働いているか」の確認にあたります。
左右で決定的に違うのは、欠けたときに気づけるかどうかです。置いてあるかは、表示されなければその場で分かります。働いているかは、成果物を1件作って同じIDで引いてみるまで、欠けていることが表に出ません。
3つ目までが揃わないまま運用を始めると、書き込み拒否が効かないうちに納品/が中間物で汚れていきます。ヒットしない項目があれば、そこがそのまま次の作業になります。
10プロジェクト構成でつまずくのは、AI活用のどの段階なんですか?
高梨課長分けて、IDを振って、拒否ルールも書きました。これで一通りでしょうか。
鈴木さん一通りです。ただ、つまずく場所は作った直後ではなく、しばらく経ってから出てきます。
よくあるつまずきを挙げます。
- 置き場だけ作って、書き込み拒否を設定しない: 分けた時点で安心してしまう例です。設定を足さない限り、AIエージェントは
納品/へも直接書き込めます。 - 成果物のファイル名やfrontmatterにIDを含めない:
_MANIFEST.mdにだけIDを書いても、成果物側に無ければ検索で一度に集まりません。 _work/は読む先としない、とCLAUDE.mdに書かず、フォルダを分けただけで終える: AIエージェントは両方を正本の候補として扱い、結局どちらが正しいかを尋ねてきます。- 旧版を
retired/へ移さず削除する: 戻したくなったときに、戻す先がありません。受け皿を先に用意しておきます。 _MANIFEST.mdのような正本ファイルを、案件ごとに複数種類作ってしまう: 進捗を書くファイルが増えるたびに、どれが最新の正本か探す作業が復活します。- 図解や補足資料だけを
_work/の外へ置き忘れる: 本体は納品/にあっても、参照している画像や設定ファイルが_work/に残っていると、複製や共有のときに欠けます。
並べてみると、つまずきは作った順には現れないと分かります。分けた直後に出るものはごく一部で、多くは資料が増えたころ、戻したくなったころ、外へ渡すころに初めて表面化します。だから点検は、作った日ではなく、しばらく使ったあとにもう一度行います。
11生成AIに任せる前に、プロジェクト構成のどこを点検すればいいんですか?
ここまでを、点検できる形へ畳みます。
- 完成版フォルダ(
納品/など)と中間物フォルダ(_work/など)を物理的に分けたか - 旧版を退避する
retired/を用意し、削除ではなく移動する運用にしたか - 案件ごとに1つのIDを決め、命名ルールを一行で説明できるか
- 成果物のファイル名かfrontmatterに、そのIDを書き込んでいるか
_MANIFEST.mdなど正本情報を書く1ファイルを、案件ごとに1つへ絞ったか_work/は中間物であり読む先としない、とCLAUDE.mdに一文書いたか納品/への書き込みをEdit(path)の拒否ルールで技術的に止めたか
この並びには順番があります。前が欠けたまま先へ進むと、後ろの手当てが空振りします。 分けていない状態で拒否ルールだけ書いても、守る相手が定まりません。IDを決めていない状態で記録側にIDを書いても、引く相手がいません。
この章のまとめ
点検は、項目を埋める作業ではありません。どこで止まったかを見つける作業です。止まった手前が、次に手を入れる場所になります。
12よくある質問
プロジェクト構成は個人開発でも決めておく必要がありますか
個人開発でも有効です。ファイル数が増えると、自分自身も「どれが最新か」を思い出せなくなります。プロジェクト構成を最初に分ける手間は、数分で済みます。分ける手間がかかるのは最初だけで、探し直す手間は案件が続くかぎり掛かり続けます。
案件IDの命名ルールは何が正解ですか
固定の正解はありません。日付・部門・案件名など、自分のプロジェクトで一意に決まる要素を組み合わせれば十分です。大事なのは、途中で形式を変えないことです。形式が混ざると、古い案件と新しい案件を同じ条件で引けなくなります。
_work/をあとから.gitignoreに追加しても問題ありませんか
.gitignoreは未追跡のファイルにのみ効きます(出典: Git公式ドキュメント)。既にコミット済みのファイルは、git rm --cachedで追跡から外してから追加します。追加しただけで見えなくなったように思えても、履歴には残っている点に気をつけてください。
フォルダ構成を決めるタイミングはプロジェクトのどの段階が適切ですか
最初の1ファイルを作る前が最適です。あとからプロジェクト構成を分けようとすると、既存ファイルの移動と、そこを指している参照の張り替えが追加の作業になります。動いているものを動かす作業なので、初日に決めるより手数が増えます。
納品/とretired/を両方とも書き込み拒否にしてよいですか
できます。retired/は編集する必要がほとんど無いため、Editを拒否しても実務上の支障は小さめです。復元のために中身を読み出すReadは、許可したままにします。読めない旧版は、置いていないのとあまり変わりません。
13まとめ|今日やる3つのこと
分けたのはフォルダではなく、書き換えてよいかと毎回見にいくかの組み合わせでした。つないだのは名前や時刻ではなく、自分で発行した文字列でした。そして守りたい境界だけを、指示から仕組みへ移しました。
今日この順で手をつけます
案件フォルダの中に、完成版・中間物・旧版の置き場を切る
切る前に拒否ルールを書いても、守る相手が定まりません
案件IDを1つ発行し、成果物・MANIFEST・記録の3か所へ同じ文字列を書く
3か所そろって、はじめて一度で引けます
納品/への書き込みをEdit(path)の拒否ルールで止め、実際に書き込みを試す書いた事実と、効いている事実は別に数えます
AI検索では、こう聞かれています
Claude Codeのプロジェクト構成は、何から決めればいいんですか?
「Claude Codeのプロジェクト構成って、AIエージェントの何を変えるんですか?」の章で3つに整理しています
完成版と作業中のファイルは、分けたほうがいいんですか?
「完成版と中間物を分けないと、AIエージェントはプロジェクト構成のどこを見にいくんですか?」の章で扱っています
CLAUDE.mdに書けば、AIは本当にそのとおり動くんですか?
「CLAUDE.mdに書くだけで、Claude CodeのAIエージェントは本当にそこを避けてくれるんですか?」の章で説明しています
完成版フォルダへの書き込みは、どうやって止めるんですか?
「Claude Codeのプロジェクト構成は、AIエージェントの書き込みをどこで止めるんですか?」の章にコード例があります
次に読むなら、この記事です