Cursorでインストラクションを起動時に自動で読み込む
Cursor.iconCursorでアプリを起動したら自動でインストラクションを読み込む方法。
Cursorにやり方聞いてやってたら沼ったのでここにメモ。もし同じことで悩んでる人がいたら参考にしてください。
結論
⌘⇧JでCursorSettings画面を呼び出す。
https://gyazo.com/f3d3876d2719745cb0550346c85ddd7d
このRulesをクリックする。
https://gyazo.com/facf6232f75eee4f39d3e61ebe9f71d3
User Rulesというところにフツーに日本語で書いたことが起動時のインストラクションとして反映される。
実体ファイルは~/.cursor/user-rules.jsonにある。
直接このファイルをいじる場合はJSON形式で記入する必要がある。
でも、別に直接いじる必要はないので、上のCursorSettings画面からGUI上で編集すればいいだけ。
じゃあ何で沼ったのか
Cursorに方法を聞いたら「.cursor直下に適当な名前のjsonファイルを置けば反映してくれる」と嘘を言われ、その通りに信じてしまった。
途中で「あれ?」と思ったのでChatGPTに質問したら「プロジェクト直下の.cursor内にrulesというディレクトリをつくり、そこに.mdcで記入すれば反映される」と言われ、今度はそれに従うことに。
このやり方は間違いとまでは言えないのだが、①アプリ全体でのインストラクションではなく、特定のプロジェクトごとに発動するインストラクションの設定方法。②言われた通りの設定をしてもバグで動かないことがあるためにハマった。
.mdcはyaml形式の記述をしなければならない。
code:mdc
---
description: 森さんのカスタムインストラクション # ← クォートなし、内容そのままでもOK
alwaysApply: true
globs:
---
ここでyamlと言いつつなんかちょっと修正したゴニョゴニョらしいのでdescriptionには""(クォート)をつけてはダメらしい。
ところがこれでも動かない。
https://gyazo.com/a9e446188e694ac17ec5404b0fc6dddf
⌘⇧JでCursorSettings画面を呼び出しRulesを見ると設定が反映しているかどうかわかる。
Project Rulesの箇所、黄色い文字で「設定が適用されてない」と書かれているので上手くいってない。
https://gyazo.com/76903e48a76a3d6c818aa1fad7f13bea
ファイル名をクリックすると詳細へ。RuleTypeをAlwaysにすると常時発動するようになる。
既にファイル内にalwaysAppky: trueとあれば常時発動するはずなのだが、キャッシュの関係でこの手のバグがあるらしい。
再起動すれば反映される。
結局どうすればいいのか
https://gyazo.com/253e8449949ed26d2e481777bb212e1d
⌘⇧JでCursorSettingsからRules画面を選択。全体のインストラクションはここに直書きでいい!(単純)
プロジェクトごとのインストラクションはそのプロジェクト直下に.cursor/rules/hogehoge.mdcファイルを置き、それをRules画面から指定してあげる。
インストラクションは上書きではなくマージされる。