🌐 This content is available in Japanese only

開発ポータルをClaudeCode前提で育てる設計

AI活用
ClaudeCodeNext.jsブログ

SHOW SmartWork Labのポートフォリオサイトは、最初からClaudeCodeで開発・運用する前提で設計しています。この記事では、「AIが継続運用しやすいサイト」とは何かを整理します。

従来のサイト運用との違い

従来のWeb制作では、人間がCMSのダッシュボードにログインしてコンテンツを更新します。

ClaudeCode前提の運用では、以下が変わります。

  • 正本はGit: データベースやCMSではなく、リポジトリ内のファイルが真実
  • 操作はファイル編集: 管理画面のクリックではなく、ファイルの読み書き
  • 品質担保は機械的: 人間のレビューではなく、バリデーションスクリプトとビルド

設計の3原則

1. 1操作 = 1ファイル

記事の追加は、MDXファイルを1つ作るだけで完了します。sitemap.tsやNavの変更は不要です。データベースへのINSERTもAPI呼び出しも要りません。

ClaudeCodeにとって「ファイルを1つ書く」は最も得意な操作です。複数ファイルを同時に変更する必要がある設計は、不整合のリスクが増えます。

2. メタデータは宣言的に

frontmatterでメタデータを宣言的に記述します。

title: "記事タイトル"
category: "AI活用"
tags: ["ClaudeCode", "Next.js"]
published: true

ClaudeCodeはこの構造を見れば、何を埋めるべきかすぐわかります。命令的なコード(「このAPIを呼んでステータスを変更」)よりも、宣言的な設定の方がAIには扱いやすいです。

3. 機械的にバリデーション可能

scripts/validate-blog.ts で以下を自動チェックしています。

  • 必須フィールドの欠落
  • カテゴリのホワイトリスト照合
  • タグの重複
  • 公開記事の未来日チェック
  • テンプレートプレースホルダの残存検出
  • 本文の最低文字数

ClaudeCodeはバリデーションを実行して、エラーがあれば自分で修正できます。人間が目視で品質を担保する必要はありません。

具体的な構成

content/blog/
├── _template.mdx           ← テンプレート
├── _brief-template.md      ← 企画ブリーフ
├── _update-plan-template.md ← 更新計画
└── YYYY-MM-DD-slug.mdx     ← 記事ファイル
  • テンプレートは _ prefixでビルド対象外
  • 記事ファイル名に日付を含めてソート可能に
  • slugがそのままURLになる規約

この構成は、ClaudeCodeに「_template.mdx を参考に新しい記事を書いて」と言うだけで記事が生成される想定です。

運用スキルの定義

.claude/skills/blog/SKILL.md に、記事の新規作成・更新手順をスキルとして定義しています。これにより、ClaudeCodeは人間の細かい指示なしに、手順に沿って記事を追加できます。

スキルには以下が含まれます。

  • 新規記事の7ステップ手順
  • 既存記事の更新手順
  • frontmatter仕様
  • slug命名規則
  • CTA・タグの方針
  • 作業完了後の報告フォーマット

まとめ

ClaudeCode前提のサイト設計とは、「AIが迷わず操作できる構成にする」ということです。ファイルベース、宣言的、機械的バリデーション。この3つを揃えれば、人間は目的と制約だけ伝えればサイトが回ります。

AI制作プロセスAI運営ログで、実際の運用の様子を公開しています。