Makuhari Development Corporation
12 min read, 2308 words, last updated: 2026/3/6
TwitterLinkedInFacebookEmail

Claude Code の Skills アーキテクチャで GIS プロダクト開発を加速する

はじめに

AI コーディングアシスタントを使ったプロダクト開発で、こんな経験はありませんか?

  • 「このプロジェクトでは PostGIS を使っている」と毎回説明する
  • 前回のセッションで解決した問題を、次のセッションで同じ AI が再び間違える
  • コードベースが育つにつれて、AI が読むべきファイルを見つけるまでの探索時間が増える

これらはすべて コンテキスト問題 です。AI エージェントはセッションを跨いで記憶を持たず、毎回ゼロからプロジェクトを理解する必要があります(いわゆる「コールドスタート」)。

この記事では、GIS ベースの不動産分析サービス(Python + React + PostGIS、50万行以上)の開発で、Claude Code の Skills アーキテクチャを活用してコンテキスト問題を体系的に解決した実践記録を紹介します。


コンテキスト問題の構造

コールドスタートコスト

AI エージェントが新しいセッションでタスクに着手するまでに消費するトークンを「コールドスタートコスト」と呼びます。

graph LR A["セッション開始"] --> B["CLAUDE.md 読込<br/>(約400行)"] B --> C["タスク判定<br/>何をすべきか?"] C --> D["関連ファイル探索<br/>Glob / Grep"] D --> E["ファイル読込<br/>コード理解"] E --> F["実作業開始"] style A fill:#FF8400,color:#fff style F fill:#FF8400,color:#fff

プロジェクトが小さいうちは B→F が数秒で完了しますが、コードベースが成長するにつれて D(探索)のコストが爆発的に増加します。50万行規模では、何の指針もなく探索すると 100K トークン以上を消費することがあります。

3つの非効率パターン

パターン 原因 結果
広域探索 AI が関連ファイルの場所を知らない Glob/Grep を 10回以上繰り返す
情報不足による誤判断 プロジェクト固有の制約を知らない 破壊的変更・既存パターン無視
繰り返し学習 前回の失敗が次回に伝わらない 同じ過ちを複数セッションで反復

Skills アーキテクチャ

設計原則

Claude Code には CLAUDE.md(プロジェクト指示書)と .claude/skills/(スキルファイル)の仕組みがあります。この階層構造を利用して、ルーティング型のコンテキスト供給を設計します。

graph TD A["CLAUDE.md<br/>(L0: 入口)<br/>約束事 + タスクルーティング表"] --> B["ARCHITECTURE.md<br/>(L1: 導航)<br/>モジュール依存 + データフロー"] A -->|"データ導入タスク"| C["skills/data-import-*.md<br/>(L2: 操作手順)<br/>チェックリスト + 技術規範"] A -->|"フロント修正タスク"| D["frontend/CLAUDE.md<br/>(L3: モジュール)<br/>コンポーネント構成 + 規約"] A -->|"DB マイグレーション"| E["skills/production-db-migration.md<br/>(L2: 操作手順)<br/>本番 DB 手順"] style A fill:#FF8400,color:#fff

核心思想:AI は全ファイルを読む必要はない。タスク種別に応じて「読むべきファイル」だけを正確に供給する。

L0: 入口(CLAUDE.md)

プロジェクトルートの CLAUDE.md は AI が最初に読むファイルです。ここに配置するのは:

  • 約束事(コーディング規約、禁止事項)
  • タスクルーティング表(タスク種別 → 必読ファイルのマッピング)
  • 変更してはいけないもの(コア競争力のアルゴリズム等)

ルーティング表の例

タスク種別 必読 按需読
データ導入 skills/data-import-checklist.md DATA.md
フロント修正 frontend/CLAUDE.md skills/react-best-practices.md
DB マイグレーション skills/production-db-migration.md scripts/migration/
分析 API 修正 src/api/routes/analysis_v2.py ARCHITECTURE.md

これにより、AI はタスクに無関係なファイルを読まずに済みます。

L2: Skills(操作手順)

Skills は再利用可能なワークフローを定義するファイルです。知識の参考文献(docs)とは明確に区別します。

特徴 Skill(.claude/skills/ Doc(.claude/docs/
内容 チェックリスト、操作手順 知識、アーキテクチャ解説
使い方 ステップを順に実行 必要時に参照
更新頻度 操作変更時 知識更新時

Skill の構造テンプレート

実戦で収束した Skill ファイルの構造:

# タスク名
 
> **目的**:一文で説明
> **引用**:被誰引用 / 引用誰
 
## チェックリスト
 
### 事前確認
- [ ] 条件A を満たしているか
- [ ] 条件B を確認したか
 
### 実行手順
1. ステップ1
2. ステップ2(**人間確認必要**
3. ステップ3
 
### 事後検証
- [ ] 結果A を確認
- [ ] 結果B を検証

実践:GIS プロダクトでの適用

データ導入の Skill 群(5ファイル連携)

GIS プロダクトでは、異なるデータソース(OpenStreetMap、国土数値情報、e-Stat 等)から空間データを取り込む作業が頻発します。各データソースの API 仕様、座標系、フィールド名が異なるため、手順を標準化する必要がありました。

5つの Skill ファイルを連携させる設計:

graph LR A["checklist<br/>(全体チェック)"] --> B["execution<br/>(技術規範)"] A --> C["methods<br/>(コマンド速査)"] A --> D["architecture<br/>(基底クラス設計)"] A --> E["pitfalls<br/>(踏坑経験)"] style A fill:#FF8400,color:#fff
ファイル 役割 行数
checklist 導入前・中・後の確認項目 ~300
execution バッチ処理・トランザクション制約 ~430
methods データソース別コマンド一覧 ~530
architecture 基底クラスと拡張パターン ~330
pitfalls 過去の失敗と対策 ~210

合計 ~1,800 行ですが、ルーティング表によって AI は checklist から入り、必要に応じて他のファイルへジャンプします。全部読む必要はありません。

効果測定

Skills 導入前後で、データ導入タスクのコンテキスト消費量を比較:

指標 導入前 導入後 改善
探索トークン(Glob/Grep) ~30K ~5K -83%
誤操作(ロールバック回数) 平均 1.2回/タスク 0.1回/タスク -92%
コールドスタート→実作業 ~3分 ~30秒 -83%

ドキュメント健全性の維持

膨張問題

Skills を運用すると、2つの膨張リスクが発生します:

  1. CLAUDE.md の肥大化:便利なので何でも書き足してしまう
  2. Skill 間の重複:似たトピックの Skill で同じ情報を二重記述

対策ルール

ルール 閾値 アクション
単一ファイル行数 > 500行で評価 拆分 or 構造索引を追加
CLAUDE.md 行数 ≤ 450行 超過した情報を skill/docs へ移動
重複検出 同一情報が2箇所以上 権威ソースを1つに統一
持続更新型ファイル 作成時 文書ヘッダー(目的・構造・更新ルール)必須

使用駆動の最適化

静的なルール(上記)だけでは構造的問題を見つけられません。実タスクを通じてフィードバックを蓄積する仕組みを併用します。

タスク後のシグナル記録(実際に「遠回りした」と感じた時のみ):

シグナル 意味 対策
遠回り ルーティング表が指すファイルに必要な情報がなかった ルーティング修正
往復参照 2ファイル以上を行き来して初めて理解できた マージ or サマリー追加
無用な読込 ルーティング表の「必読」だが実際は不要だった 必読→按需に降格

36 Skills の分類体系

最終的に収束した Skill の分類:

カテゴリ 件数
データ導入 8 チェックリスト、OSM 専用手順
DB・マイグレーション 2 本番 DB 手順、開発 DB ワークフロー
分析・最適化 6 メッシュ最適化、Tile 完備性検査
フロントエンド 4 UI ガイドライン、バンドル監査
デプロイ・運用 3 本番デプロイ、インフラ監査
コンテンツ・法務 3 日本語文案チェック、法的文書審査
ドキュメント管理 4 CHANGELOG ワークフロー、文書精簡
テスト・検証 2 ブラウザ検証、API テスト方法論
マーケティング 4 ブログ執筆、リリースツイート

命名規則{動詞/名詞}-{対象}-{形式}.md(例: data-import-checklist.md, deploy-to-production.md


GIS プロダクト特有の考慮点

GIS ドメインでは、以下の理由から Skills の効果が特に大きいです:

1. データソースの多様性

一般的な Web アプリケーションは 1-2 種類のデータストアを扱いますが、GIS プロダクトは 10 種類以上のデータソースを統合します。各データソースの API 仕様・座標系・ライセンス条件をすべて AI が「知っている」状態にするには、構造化されたドキュメントが不可欠です。

2. 空間計算の非直感性

ST_ContainsST_Intersects の使い分け、SRID の変換、球面距離と平面距離の違いなど、空間計算には直感に反するトラップが多数あります。これらを Skill の「踏坑経験」セクションに蓄積することで、AI が同じ過ちを繰り返すのを防止します。

3. パフォーマンスの臨界点

空間インデックスの有無で 100 倍以上のクエリ速度差が出るため、「この関数を使うときは必ず GIST インデックスを確認」といった制約を Skill に明記することが、本番障害の予防になります。


まとめ

Claude Code の Skills アーキテクチャは、以下の問題を構造的に解決します:

  • コールドスタートコスト:タスクルーティング表で「読むべきファイル」を即座に特定
  • 知識の揮発:セッションを跨ぐ経験を Skill ファイルに永続化
  • プロジェクト固有の制約:コーディング規約・禁止事項を強制力のあるドキュメントとして配置

50万行規模の GIS プロダクトでの実測では、コンテキスト探索コスト 83% 削減、操作ミス 92% 削減を実現しました。

ポイントは「全部書く」ことではなく、ルーティングで必要最小限のコンテキストを正確に供給する ことです。AI は賢いので、正しいファイルさえ渡せば、あとは自分で理解して作業を進めてくれます。


この記事は、筆者が個人開発の GIS スタートアップで Claude Code を日常的に利用する中で体系化した手法に基づいています。Claude Code は Anthropic が提供する CLI ベースの AI コーディングアシスタントです。

Makuhari Development Corporation
法人番号: 6040001134259
ご利用にあたって
個人情報保護方針
個人情報取扱に関する同意事項
お問い合わせ
Copyright© Makuhari Development Corporation. All Rights Reserved.