3-2 構築する
3-1 の設計書をもとに、Claude Code に Movable Type へサイトを構築させます。 サイト・カテゴリ・カスタムフィールド・コンテンツタイプ・利用者・画像・原稿・テンプレートを作成し、公開まで進めます。
頼む
同じ作業フォルダで、3-1 の会話の続きとして頼みます。
design-doc.md の設計で、Movable Type にサイトを組んでください。
- 原稿は content/ のものをすべて入れて、公開まで済ませてください
- 何をどの順でしたか、詰まったところとどう直したかを build-log.md に残してください
- 16章のリスクは、構築の中で確かめて進めてください。HTML のブロックが使えないなど設計を変える必要が出たら、リッチテキストに切り替えるなど設計書の代案で進めて構いません。変えたところは design-doc.md にも反映してください
- mtb でできず、人が管理画面ですることがあれば、そこで止めずに先へ進め、最後にまとめて教えてください
- 書き込みの前に MTB_AUDIT_NOTE に作業の説明を入れてください
- 最後に、15章の確認の項目を確かめた結果を build-log.md に書いてくださいポイントは3つです。
- 記録を残させる(
build-log.md)。何が起きたかを、あとから人間が追えるようにします - 最後に設計書の確認項目で検証させる。「できました」だけで終わらせず、何を確かめたかを書かせます
MTB_AUDIT_NOTE。mtb は書き込みのたびにこの説明を送ります。MT 側が監査ログを取っていれば、操作ごとに「何の作業か」が記録されます
権限の確認について
Claude Code の既定の権限のモード(auto)では、危険の少ない操作は Claude Code が判断して実行し、危ない操作は止めます。 この記録は、利用者の手元を再現したコンテナの中で、権限の確認をすべて省いて(bypassPermissions)実行したときのものです。 手元で試すときは、既定のモードのままか、Shift+Tab で一つずつ許可するモードに切り替えて進めてください。
Claude Code がしたこと
記録では 119ターン・約18分で公開まで完了しました。設計書の「構築の順序」のとおりに進めています。
| 順 | 作業 | 作成したもの |
|---|---|---|
| 1 | サイト | ウェブサイト1つとブログ3つ(/news/ /press/ /magazine/) |
| 2 | 分類 | カテゴリ(お知らせ4・プレスリリース6・マガジン5)と並べ替え |
| 3 | 構造 | カスタムフィールド、コンテンツタイプ3つ(サービス・物件・メンバー) |
| 4 | 人 | 利用者2人(相沢・佐伯)と、担当のブログだけへの権限 |
| 5 | 素材 | 画像・ロゴ103点 |
| 6 | 中身 | サービス4・物件5・メンバー5、ウェブページ3、記事20 |
| 7 | 見た目 | テンプレート33件とアーカイブマッピング |
| 8 | 公開と確認 | モックアップとの突き合わせ |
書き込みのたびに、作業の説明を付けていました。
MTB_AUDIT_NOTE="Five United 構築: カテゴリ作成(設計書 §5.1)" mtb sites categories create …テンプレートは、モックアップの HTML から MT のテンプレートを生成するスクリプトを Claude Code が自分で書き、 templates/ にファイルとして書き出してから mtb で MT に登録していました。原稿の取り込みや、公開したページとモックアップの突き合わせも スクリプトにしています。作業フォルダの build/ には、スクリプトが17本残りました。
詰まったところと、どう直したか
build-log.md に「詰まったところ」が7つ記録されていました。どれも Claude Code が自分で原因を突き止めて直しています。
| 症状 | 原因 | 直し方 |
|---|---|---|
| 画像のフィールドを作ったら、コンテンツタイプごと 500 で読めなくなった | フィールドの options に真偽値("multiple": false)を入れた | 読めなくなったタイプを削除し、真偽値を入れずに作り直した |
| サービスの URL の最後の段が40桁の英数字になった | identifier を送っていた。API の項目名は basename | basename で作り直した |
| 会社概要などの本文が空だった | ページの本文の項目名を text にしていた。正しくは body | body で入れ直した |
サイトを作っただけで styles.css などが公開された | サイトの作成で、既定のテーマのテンプレートとサンプルが入る | 既定のテンプレートを消した。書き出し済みのファイルは消せないので、中身を空にした |
| テンプレートの公開が 403 | MT にまだ無いモジュールを読んでいた | モジュールを先に作った |
| カテゴリの並び順がテンプレートの出力に反映されない | MT 9.3.1 で観測 | 絞り込みのボタンを、意図した順に並べた固定の HTML で書いた |
| 「ほかのプレスリリース」が古い記事だけになる | 記事のページの中の一覧は、その記事より前に絞られる | ignore_archive_context="1" を付けた |
3つ目までは公開したページをモックアップと突き合わせて見つけたものです。確かめるよう頼んでおいたので、これらを見つけられました。 ここで分かった罠は mtb の資料(mtb llm とうまくいかないとき)に書き足しました。次の構築からは、これらを最初から避けられます。
できあがり


確かめた結果(build-log.md の最後)の要点です。
- モックアップの47ページ(デザインシステムの見本を除く)が、すべて MT から公開された
- 空白の違いを除いて HTML を比べると、47ページとも一致。違いは意図したもの2つだけ (マガジンのタグが名前順になる、フィードの案内を
<head>に追加した) - 出力に残ったテンプレートタグは0件、画像などの参照104件がすべて表示できる、フィードとサイトマップは正しい XML
ブラウザで見た目を比べることは、Claude Code の環境にブラウザが無かったのでしていません(HTML とクラスが一致することで代えています)。 このチュートリアルでは、人間がブラウザで主なページ(トップ・プレスリリース・マガジンの記事)を開いて確かめました。スマホの幅でも崩れずに表示されます。

できたサイトは five-united-demo.mtbcli.com で見られます。
人間に残った作業
最後に「人間が管理画面ですること」がまとめて報告されました。mtb(Data API)ではできないか、ブラウザで確かめるしかないものです。
- 佐伯さんのアカウントで、マガジンの記事を管理画面で開き、ブロックが崩れないかを確かめる
- 既定のテーマが書き出した、中身が空のファイルをサーバから消す
- 相沢さん・佐伯さんの初回のサインインとパスワードの変更
- 編集画面の表示の設定(必要な欄を出す)
初期パスワードは頼んだとおりファイルには残されず、会話の最後に Claude Code から知らされました。
この段のまとめ
| 人間が渡したもの | 頼む文(1回) |
| 成果物 | 公開されたサイト(47ページ)、build-log.md、テンプレートとスクリプト |
| かかった時間 | 約18分(Claude Code の実行時間) |
| 人間に残った作業 | 管理画面での確認と設定(上の4つ) |
次は 3-3 運用マニュアルを作るです。