Cursorでは、Claude DesktopのCLAUDE.mdやskillsディレクトリの概念を、.cursorrules(プロジェクト全体のルール) と .cursor/rules/(コンテキストごとの個別ルール・スキル定義) にマッピングするのが現在のベストプラクティスです。
提案するディレクトリ構造は以下のようになります。
📁 Cursor向けデータ分析基盤 開発環境テンプレート
data_platform_project/
├── .cursorrules # プロジェクト全体のマップと基本方針(旧 CLAUDE.md)
├── .cursor/
│ └── rules/ # 個別のAIスキル・規約定義(旧 .claude/skills/ 等)
│ ├── 00_naming_conventions.mdc # 【独自】案件特有の命名規則・用語集
│ ├── 01_dbt_architecture.mdc # dbt層(Raw, Stg, Int, Mart)の設計思想と規約
│ ├── 02_snowflake_ddl.mdc # Snowflake特有の設定(Search Optimization等)
│ ├── 03_airflow_dags.mdc # Airflow DAGの実装テンプレートとルール
│ ├── skill_add_model.mdc # 【スキル】新しいデータモデルを追加する際のワークフロー
│ └── skill_review_code.mdc # 【スキル】コードレビューの観点
├── dbt_project/ # dbt本体
├── snowflake_scripts/ # SnowSQLやDDL管理
└── dags/ # Airflow本体
各ファイルの役割と記述内容のポイント
1. .cursorrules (プロジェクト全体の指示書)
プロジェクトのルートに配置し、CursorのAIが常に参照する「脳」の役割を果たします。エージェントが迷子にならないよう、リポジトリの全体像を定義します。
- 記載内容:
- アーキテクチャの全体像(データ抽出先 → Snowflake → dbt → Airflowによるオーケストレーション)。
- プロジェクトのディレクトリルートの説明。
- 「詳細なルールや命名規則、スキルは
.cursor/rules/以下のファイルを参照すること」というメタ指示。
2. .cursor/rules/00_naming_conventions.mdc (案件特有の情報・命名規則)
ご要望にあった「案件特有の情報を盛り込める階層」です。拡張子を .mdc (Markdown Driven Context) にすることで、Cursorエージェントが関連する作業時に自動的にこのルールを読み込みます。
-
フロントマター(先頭のメタデータ):
globs: ["/*.sql", "/*.py", "/*.yml"] - 記載内容:
- テーブル名、カラム名、タスク名の命名規則(例:
stg_[source]_[entity])。 - 案件特有のビジネス用語(ドメインボキャブラリー)の定義と英訳の固定。
- 略語の禁止ルールや許可リスト。
3. .cursor/rules/01_dbt_architecture.mdc (dbt固有の規約)
dbtのモデリング方針をAIに理解させます。
-
フロントマター:
globs: ["dbt_project//*.sql", "dbt_project//*.yml"] - 記載内容:
- Raw層: ソースデータの取り込みルール。
- Stg (Staging) 層: 型変換とリネームのみを行う制約。
- Int (Intermediate) 層: 結合や複雑なビジネスロジックの適用。
- Mart (Data Mart) 層: BIツール向けの最終集計テーブルの仕様。
- マテリアライゼーションのデフォルト設定(view vs table vs incremental)。
4. .cursor/rules/02_snowflake_ddl.mdc (Snowflake固有の規約)
-
フロントマター:
globs: ["snowflake_scripts//*.sql"] - 記載内容:
- SnowSQLを用いたデプロイメントの留意点。
- パフォーマンスチューニングの基準(クラスタリングキーの選定基準、Search Optimization Serviceを適用する条件など)。
- ロール(Role)やウェアハウス(Warehouse)の割り当て規則。
5. .cursor/rules/skill_add_model.mdc (AIのスキル定義)
サンプルの add-gold-model などの代替となる、アクションベースの指示書です。
-
フロントマター:
description: "Run this workflow when asked to add a new dbt model or table" - 記載内容(エージェントに踏ませるステップ):
- 要件を確認し、対象となる層(Stg/Int/Mart)を特定する。
-
00_naming_conventions.mdcに従いモデル名を決定する。 -
.sqlファイルと.yml(テスト・ドキュメント) の両方を生成する。 - Snowflake固有の機能が必要か確認し、コードに組み込む。
エージェント最適化のためのTips
-
XMLタグの活用: ClaudeベースのモデルはXMLタグ(
<rule>,<example>,<step>など)で囲まれた構造化テキストの解釈が非常に得意です。マークダウンの中に適宜タグを混ぜることで、指示の遵守率が跳ね上がります。 - Do / Don't の明記: 「こうしてほしい」という指示だけでなく、「絶対にやってはいけないこと(Don't)」を併記すると、AIの手戻り(幻覚による誤ったコード生成)を劇的に減らすことができます。