Forest Book
GPT-5 × Cursor で「Tsumikiルール」を常時効かせる運用ガイド

GPT-5 × Cursor で「Tsumikiルール」を常時効かせる運用ガイド

2025年8月10日

この記事のゴール

  • Claude Code向けに作った Tsumiki(AITDD)ルールを、Cursor上のGPT-5でも自動で守らせる

  • .claude/commands/*.md を **Project Rules(.cursor/rules/*.mdc)**に移植し、ディレクトリ/ファイルに応じて自動適用させる。


前提

  • リポジトリには ./.claude/commands/*.md で多数のルール文書が存在

  • Cursor を使用(GPT-5を選択可能)

  • りゅうじさんの標準スタック:Node.js/モノレポ(想定)


なぜ「Project Rules」に移すのか

  • 常時・自動で効かせられる(「読む」だけでなく守らせる状態に)

  • ディレクトリごとに globs で対象範囲を制御(APIだけ、UIだけ、など)

  • ルールの粒度を保てば、GPT-5の遵守率が高い(1枚物はNG)


導入手順(クイックスタート)

1) ディレクトリを用意

mkdir -p .cursor/rules

2) 変換指針

  • 拡張子を .md.mdc に変更(MDC: Cursorのルール形式)

  • 各ファイルの先頭に Frontmatter を付与(description, globs, alwaysApply など)

  • 1ファイル=1目的(例:spec-rules.mdc / tdd-rules.mdc / api-style.mdc

3) 自動移行スクリプト(Node.js)

.claude/commands/*.md を読み、先頭H1を説明に吸収・MDCへ一括変換します。
(変換後、globs はプロジェクト構成に合わせて個別調整推奨)

// migrate-claude-to-cursor-rules.mjs
import { promises as fs } from 'fs';
import path from 'path';

const SRC = '.claude/commands';
const DEST = '.cursor/rules';

async function main() {
  await fs.mkdir(DEST, { recursive: true });
  const files = (await fs.readdir(SRC)).filter(f => f.endsWith('.md'));

  for (const f of files) {
    const srcPath = path.join(SRC, f);
    const raw = await fs.readFile(srcPath, 'utf8');

    const firstHeading = (raw.match(/^#\s+(.+)$/m) || [,'Tsumiki Rule'])[1].trim();
    const body = raw.replace(/^#\s+.+\n/, ''); // 先頭H1を本文から除去

    const frontmatter = `---\ndescription: ${firstHeading}\nglobs:\n  - "**"\nalwaysApply: false\n---\n`;
    const out = frontmatter + body + '\n';

    const base = path.basename(f, '.md');
    const destPath = path.join(DEST, `${base}.mdc`);
    await fs.writeFile(destPath, out, 'utf8');
    console.log(`migrated: ${srcPath} -> ${destPath}`);
  }

  console.log('Done. Adjust each rule’s globs and scopes in Cursor > Rules.');
}

main().catch(e => { console.error(e); process.exit(1); });

ヒント:まずは全件 **(全体適用)で移行 → 動作確認 → 徐々に globs を絞るのが安全。

4) 代表ルールの雛形(MDC)

以下は API(apps/api/)に触れた時だけ**自動適用するTDDルール例。

---
description: TsumikiのTDDルール(API層)
globs:
  - "apps/api/**"
alwaysApply: false
---

# 目的
- 仕様は先に Tsumiki コマンドで固定する(spec first)
- 実装は「failing test → fix → refactor」の順に徹底
- I/Oは zod でスキーマ化し、snapshotを残す

# 実行順
1. 仕様化:`tsumiki spec:api:create ...` でユースケースを明文化
2. テスト生成:`tsumiki test:api:init ...` で失敗テスト作成
3. 実装:最小実装でテストをgreen化
4. リファクタ:重複削減・命名整理・副作用排除
5. ドキュ生成:`tsumiki docs:api:update` で仕様と入出力を同期

# 守るべき規約(抜粋)
- バリデーションは `zod`。schemaは `schema/` 配下で共通化
- コントローラからDB直アクセス禁止。必ず usecase 経由
- 例外メッセージはユーザー起点の文言。技術語はdetailsへ

5) globs 設計のコツ(モノレポ想定)

  • apps/web/**:フロント専用ルール(UI文言ガイド、アクセシビリティ、状態管理規約)

  • apps/api/**:APIルール(TDD、入出力、エラーハンドリング、ロギング)

  • packages/*/**:共有ライブラリ(公開APIの安易な破壊変更を禁止、semver運用)

  • **/*.test.ts:テスト記述規約(命名、Arrange-Act-Assert、snapshot方針)

6) alwaysApply の使い分け

  • true常時添付(小さく普遍的な「チーム行動規範」向き)

  • false自動添付(globs命中時) or 手動添付@rule名
    → Tsumikiの詳細ルールは基本こちらでOK


運用フロー(実務での回し方)

  1. 初期移行

    • スクリプトで全件MDC化 → プロジェクトを再読み込み

    • Cursorサイドバーの Rules パネルで「どのルールがAttachされているか」を確認

  2. 計画的に分割

    • 1ファイルが大きい場合は分割(目的ごとに300〜500行目安)

    • 「仕様/TDD/命名/レビュー/ドキュ生成」を別ファイル

  3. 適用範囲を絞る

    • 誤爆が多いルールは globs を絞る or 手動添付運用へ切替

  4. レビュー基準の同期

    • PRテンプレートに「適用ルール名」を明記

    • 例:This change complies with: spec-rules, tdd-rules, api-style

  5. ドキュと実装の二重化を避ける

    • 「出力テンプレ・サンプル・CLIの実行例」をルール内に内包

    • 参照ファイルは @docs/xxx.md のように置き、更新を一箇所に寄せる


チェックリスト(導入完了判定)

  • .cursor/rules/*.mdc が存在し、対象ファイルを開くと自動添付される

  • 主要領域(web/api/packages)ごとに専用ルールが分割されている

  • ルールには手順・根拠・禁止事項・OK/NG例が含まれる

  • PRテンプレートに準拠確認項目がある

  • ルール改定時に**影響範囲(globs)**が把握できる


つまずきポイントと対策

  • ルールが長すぎる → 分割。要点は冒頭に「目的・守るべき3箇条」

  • 衝突する記述 → スコープ別に分ける(UIとAPIで別ファイル)

  • モデルが守らない → 指示を箇条書き+具体例にし、「禁止表現」も明記

  • 適用漏れ/誤爆 → RulesパネルでAttach状況を確認。globs を調整

  • Docsとの重複 → 「規範=Rules」「参考情報=Docs」に役割を分離


よくある質問(FAQ)

Q. .mdc 内で別ファイルを参照したい
A. 本文中に @docs/xxx.md のように参照パスを記しておくと、補助文書として読ませやすいです(命名は任意、実体はリポジトリ内に置くのが一番確実)。

Q. すべてのルールを常時適用したい
A. まずは避けてください。対象外コードにも効いて精度が落ちるため、globs で絞るか、手動添付にしましょう。

Q. ルール更新の運用は?
A. ルールもPRで変更。理由・影響範囲・例をセットでレビュー。変更履歴は CHANGELOG_RULES.md を用意すると可視化が楽です。


まとめ

  • Tsumikiの原則を「規範(Rules)」として定着させると、GPT-5 × Cursorでも再現性の高いアウトプットになる。

  • 成功の鍵は 小粒・対象限定・具体例。最初は広く当てて、運用しながらglobsを締める

  • 「仕様→テスト→実装→ドキュ」の一連のフローをルールで縫い合わせると、チーム内外で結果がブレにくい。