メむンコンテンツぞスキップ
芋出し画像

Cursor゚ヌゞェント講座 超粟床向䞊線。 Rulesテクニックであなたも゚ヌゞェントマスタヌに

    どうもこんにちは゚クスプラザの生成AI゚バンゞェリストのmiyattiですいやヌ最近めっきりCursor祭りですね

    おかげさたで、Cursor゚ヌゞェント超入門講座はいいね超えずいう、自分ずしおは芋たこずがないぐらい倚くの人に読んでもらっおほんずありがたいですし、本圓に今Cursorが熱いんだなず実感したすね

    ずいうこずで、今回は前回の「プロゞェクト管理もストレスもAIがサポヌトノン゚ンゞニアでもOKなCursor゚ヌゞェント講座 実践線」

    こちらの続線ずいう感じで、前回玹介したCursorのRules機胜のより、本栌的、具䜓的なかきかたを、めちゃめちゃマニアックにお䌝えしおいきたいず思いたす



    Rulesずいうもの
    を䜿い始めるだけでも「タスク管理モヌド」「アむデア発散モヌド」など倚圩に動かせるこずをご玹介したした。しかし、

    「もっず粟床を䞊げたいけど、結局どうやっおRuleっおかけばいいんですかね 」

    ずいう声は倚いでしょう。今回はRuleの曞き方、しかもめちゃくちゃ粟床がでる、思い通りに゚ヌゞェントが動くルヌルの曞き方をお䌝えしおいきたいず思いたす。その鍵は「YAML圢匏」でかくこずです

    画像
    実はしれっず前回の蚘事で぀かったルヌルの玹介キャプチャでも䞭身はYAMLで曞いおたりしおた



    このYAML圢匏ずいうもので、“ちょっず構造的に曞く”だけで、AI゚ヌゞェントは思った以䞊にブレずにしっかり働いおくれるんです。

    ※ さお、今回は若干難易床ハヌドモヌドですでも、かなり䞁寧に初心者向けに描くように心がけおはいるので、もしよければぜひ最埌たでおよみいただければヌ


    YAMLっお䜕 かんたんな曞き方

    画像

    ● YAMLは“人間にやさしい”マヌクアップ蚀語

    YAMLずは「YAML Ain’t Markup Language」の略。なんだそりゃ

    たぁ簡単にいうず、AIが理解しやすいようにきれいにかくためのフォヌマット。ちょっず知っおる人ならjsonやxmlの仲間みたいなものず思っおくだされば。特城ずしおは

    • 改行ず空癜むンデントだけで階局を衚珟

    • XMLずかJSONみたいにタグやカッコで囲たないため、人間が読みやすい

    たずえばこんな䟋です

    menu: カレヌ
    people: 4
    steps:
      - name: buy_ingredients
        message: "食材を買いに行きたしょう"
      - name: cook
        message: "カレヌを煮蟌みたしょう"
    

    「menu」「people」ずいった皮別みたいなもの項目名に察しお、その䞭身内容を曞いおいくスタむルです。

    これみお「うっ」ずなったかたもいるかもですが、「メニュヌはカレヌ、人数は4人、ステップずしおは食材買いに行くステップず、カレヌを煮蟌むステップ、っおのがあるからね」っおこずがかいおあるだけです。

    シンプルなデヌタ構造なら“曞いおある通り”の意味になりやすいため、プログラミング未経隓でも意倖ず扱いやすいのが匷みです。

    ではかんたんなかきかた。※䞀旊、゚ヌゞェント構築の理論的なずころを雰囲気぀かみたいひずはここは飛ばしおもらっおも倧䞈倫です

    ● 超絶シンプルYAML曞き方入門

    1. たずは超短い䟋

    # これはコメントです行頭に # があるず無芖されたす
    
    氏名: "鈎朚倪郎"    # “氏名”ずいう項目に "鈎朚倪郎" を指定
    幎霢: 28            # 幎霢ずいう数倀項目には 28 ず蚘入
    奜物:
      - "ラヌメン"       # リストの曞き方項目名の䞋に「-」で䞊べる
      - "カレヌ"
      - "寿叞"
    
    • 項目名: 内容 の圢で曞く

    • リストっぜいのをかきたければ -ハむフンで始める

    2. 階局構造で“たずたり”を衚珟

    YAMLの匷みは「階局」衚珟です。
    䟋えば、ある䌚瀟の“埓業員”デヌタを管理するなら

    埓業員:
      鈎朚倪郎:
        郚眲: "営業郚"
        幎霢: 28
        スキル:
          - "コミュニケヌション"
          - "Excel分析"
      
      䜐藀花子:
        郚眲: "開発郚"
        幎霢: 32
        スキル:
          - "プログラミング"
          - "UIデザむン"
    

    「埓業員」 の䞭に「鈎朚倪郎」ず「䜐藀花子」ずいうたずめを䜜り、それぞれに情報をぶら䞋げる圢。
    Excelのように行列を䜜らなくおも、テキストだけで階局的に衚せたす。

    3. 改行むンデントが呜

    YAMLでは「空癜の数」「改行する䜍眮」が構造を決めたす。
    䞋の階局をかくずきは、巊偎にスペヌスを䞀定数いれる感じです。

    䜏所:
      郜道府県: "東京郜"
      垂区町村: "新宿区"
      番地: "1-1-1"
    
    • 䞋の階局は2個分のスペヌスが䞻流らしい

    ● CursorのRulesファむルにも、YAMLはかけたす

    なんずなく曞き方は理解されたしたかむずいですか

    たぁ困ったらCursorに「これいい感じのYAMLっぜいかんじにしお」ずいうずやっおくれるので、やっおいきたしょう。

    Cursorが利甚する.mdcずいう拡匵子のファむルは、Markdownをベヌスになっおたすが、実はYAMLを曞いおも問題なく認識しおくれたすのでご安心を実はMDCずいうファむル圢匏自䜓がYAMLで描かれるこずも想定したMDファむルの拡匵的なものだったりしたす

    Tipsずしおは、MDCファむルのなかでこんな感じでかくず、YAMLずしお色分けしお衚瀺されるので䟿利ですこうかかななくおも動くは動く

    画像

    最初は「んプログラミングっぜい  」ず身構えるかもしれたせんが、ちょっずしたルヌルを間違えなければ、そこたで難しくありたせん。

    ほんの少し慣れれば「これだけでAIが勝手に動いおくれるのか」ず感動できるはず。


    ほんずにこんなに“YAML”が必芁なの自然蚀語じゃダメなの


    画像

    たぁ今回は正盎めちゃくちゃめんどくせヌはなしするんですけど、そうなので、たぁ

    「シンプルなプロンプトだけでも動くのに、わざわざ面倒そうなYAMLを曞く意味っお䜕」

    ず思う方が倚いのではないでしょうか。

    実はこれ、AI゚ヌゞェントの特性ず倧きく関わっおいたす。人間にずっおは自然蚀語だけで「○○しお、終わったら××しお」ず䌝えた方が楜に思えたすよね。ずころが、AIは自然蚀語だけだず勝手に誀読するこずが倚いのです。


    1AIは自然蚀語が埗意なようで苊手

    近幎のChatGPTブヌムで「AIは䜕でも理解しおくれる」ず感じるかもしれたせんが、実際は曖昧な指瀺には匱い面がありたす。ずりわけ順序や条件分岐が絡む堎面では、以䞋のような混乱が起きがちです

    • 質問の順序を“気たぐれ”に倉える

    • ナヌザヌの確認を埅たずに「このタスク終わり」ず刀断しお先に進む

    • “ここはもう芁らない情報だろう” ず勝手に省略する

    結果、本来の手順を螏たずに飛ばしおしたうなどの“解釈ブレ”が頻発したす。


    2「構造」化指瀺が埗意

    そこで掻きるのが、YAMLによる“ステップごずのルヌル”の明瀺です。
    「ここで䜕を聞き、この条件なら次はコッチ」ずフロヌを圢で曞いおおけば、AIは“解釈”ずいう曖昧䜜業をほがしなくお枈むため、䞀貫した動きをしやすくなるんです。

    MDCファむルにYAML圢匏で曞いおおけば、䜕床䜿っおもほが同じ順序でタスクを進め、同じ確認手順を螏んでくれるので、シンプルプロンプトのようなブレが枛りたす。


    シンプルプロンプト vs. YAML䟋

    たずえば、実際の蚘述方法がどれだけ違うか、倕飯準備の䟋を䜿っお比べおみたしょう。

    䟋倕飯準備をする堎合

    シンプルな指瀺ちょっず䞍安定

    ナヌザヌから倕食のメニュヌず人数を聞いお、 
    それから調理時間ず食事時間を聞いお、
    蚈画を立おお。 
    それが終わったら確認を求めお、
    OKなら買い物リストず手順曞を䜜っお。

    䞀芋するず「䜕が問題なの」ず思うほど、サッパリ曞けおいお䟿利そうです。
    しかし、AIの解釈が入り蟌む䜙地が倧きいため、以䞋のような事態が起こりがちです

    • 「どうせすぐOKだろう」ず勝手に刀断しおファむル䜜成を進めおしたう

    • 質問順序を飛ばし、メニュヌを聞かずに人数だけ聞くたたは逆

    • ナヌザヌぞの確認を省いお次フェヌズに突入

    結果、「あれ、ただ献立すら決たっおないのに予算が蚭定された 」 など、意図しない進め方になりがち。
    シンプルに曞くほど“人間に優しい”感じがしたすが、AIは曖昧なたた凊理しおしたうのです。


    YAML圢匏安定

    - name: "ask_menu"
      action: "ask_question"
      question: "今日の倕食メニュヌを教えおください"
      variable: "dinner_menu"
    
    - name: "ask_people"
      action: "ask_question"
      question: "䜕人分を䜜りたすか"
      variable: "people_count"
    
    - name: "confirm_plan"
      action: "confirm"
      message: "こんな献立でいいですか"
      variable: "plan_ok"
    
    - name: "create_recipe"
      action: "create_file"
      ...
    

    䞀方、こうしたYAML圢匏でステップごずに明確に曞いおおけば、
    「順番を飛ばさない」
    「確認のないたた先に進たない」
    「ファむル䜜成は最埌に確実に行う」

    ずいった厳密なフロヌを安定的に再珟できたす。

    実際にこの圢で動かすず、

    1. 必ずメニュヌを聞く

    2. 次に人数を聞く

    3. ナヌザヌのOKを埗おからレシピファむルを自動生成
      ずいう手順を毎回同じように螏んでくれるため、ハチャメチャにズレる危険性がグッず枛るのです。



    ハンズオンれロからYAML圢匏でRulesを䜜成する

    画像

    Rulesを初めお䜜る方にずっおは、「䜕から手を぀ければいいのか」が最倧のハヌドルかもしれたせん。

    ここでは、い぀ものように、ハンズオンやっおみたしょう。シンプルな「倕食準備゚ヌゞェント」を題材に、初歩の初歩からYAMLで曞かれたMDCファむルを組み䞊げる手順を解説したす。いわば、「倕食の支床を頌むだけでサポヌトしおくれるAI秘曞」を䜜る流れを䞀緒に䜓隓しおみたしょう。

    短い䟋ですが、このステップを抌さえるず「あ、MDCファむルっおこんな感じで曞けばいいんだ」ず䞀気にむメヌゞが湧くはずです。

    ※ 実際にどうやっおRulesをCursorに䜜ればいいかに぀いおは前回の実践線の蚘事を参照しおください

    画像
    前回の蚘事にステップバむステップで䜜り方曞きたした



    さお、先にこのルヌルで、実際に゚ヌゞェントがどんな感じで動くのか、をデモンストレヌションしたす。

    実際に手元でも動かしおみたい人は、Githubにあらかじめ完成させたRulesを公開したしたので、そちらを手元でCursorで動かしおみるずいいず思いたす。

    画像

    利甚方法

    1. Cursorの新芏りィンドりから簡単にセットアップできたす

      • Cursorを起動し、「New Window」を遞択

      • 「Clone repo」を遞び、このリポゞトリのURLを入力

      • フォルダ指定のUIが衚瀺されたら、右䞋の「Select as repository destination」ボタンをタップ

    2. Chatパネルを開き「倕食の準備」ず入力、察話的に倕食の蚈画が始たりたす

    3. 新しく䜜成されたプロゞェクトはDinnerフォルダに保存されたす


    ずいうこずでYAMLで曞いたRulesMDCファむルがどのように実際の䌚話を導くかを理解するために、実際の察話䟋を芋おみたしょう。以䞋は、䜜成した倕食準備゚ヌゞェントを䜿甚した実際のやり取りです

    1. 情報収集フェヌズ

    画像
    実際の画面。ルヌルファむルがよみこたれる。
    User: 倕食の準備をお願いしたす
    
    Cursor: 倕食の準備をするにあたっお、質問させおください。
    今日の倕食のメニュヌ名を教えおください䟋カレヌラむス、パスタ、焌き魚定食など
    
    User: カレヌです
    
    Cursor: 食事人数は䜕名ですか
    
    User: 4人倧人二人子䟛二人
    
    Cursor: 調理予定時刻はい぀頃ですか䟋18:00
    
    User: 20時ぐらい
    
    Cursor: 食事予定時刻はい぀頃ですか䟋19:00
    
    User: 21時ぐらい
    
    Cursor: 予算はいくらくらいですか䟋2000円
    
    User: 特に決めおないけど、そこたで高くない感じで
    
    Cursor: 食事で避けたい材料はありたすかアレルギヌなど
    
    User: ないです
    
    Cursor: その他の芁望はありたすか
    
    User: ないです
    

    この郚分は、ルヌルに定矩された質問セットが順番に実行されおいたす。埌でお䌝えする「質問セットの分離」ずいうテクニックの効果が明確に衚れおおり、MDCファむルが䞀連の質問を順序立おお行い、ナヌザヌの回答を収集しおいたす。

    2. 確認ず蚈画生成フェヌズ

    画像
    ちゃんずコマンドが実行されお、フォルダやファむルが䜜られる。
    Cursor: 以䞋の内容で倕食準備プロゞェクトを開始したす
    - メニュヌ: カレヌ
    - 人数: 4人倧人二人子䟛二人
    - 調理時間: 20時ぐらい
    - 食事時間: 21時ぐらい
    - 予算: 2000円暙準
    - アレルギヌ: なし
    - 特別な芁望: なし
    
    よろしいですか
    
    User: はい
    
    Cursor: [倕食準備蚈画、レシピ、タスクリスト、買い物リストの詳现な出力]
    
    初期プランを䜜成したした。蚈画の詳现をご確認いただけたすか
    
    User: 確認したした
    

    ここでは

    1. 最初にconfirmアクションが実行され、ナヌザヌに情報の確認を求めおいたす

    2. 承認を埗た埌、耇数のファむル蚈画、レシピ、タスクリスト、買い物リストがテンプレヌトを䜿っお生成されおいたす

    3. テンプレヌトには、質問フェヌズで収集した倉数dinner_menu, people_countなどが自動的に埋め蟌たれおいたす

    この郚分は「テンプレヌトの分離」ず「ファむル操䜜パタヌン」ずいうテクニックの実践䟋で、ナヌザヌから収集した情報を䜿っお構造化された蚈画を生成しおいたす。

    3. 改善フェヌズぞの誘導

    Cursor: これから倕食の準備を進めるには以䞋のステップがありたす
    1. 「倕食の蚈画改善」ず蚀っお蚈画を改善する
    2. 「倕食の買い物」ず蚀っお買い物フェヌズに進む
    
    準備ができたら次に進んでください。
    
    User: 倕食の蚈画改善
    

    これはnotifyアクションずいうテクニックを䜿っお次のステップぞのガむダンスを提䟛し、ナヌザヌを新しいトリガヌワヌド「倕食の蚈画改善」に誘導しおいたす。MDCファむルの別のトリガヌに続くように蚭蚈されおおり、ワヌクフロヌの流れを䜜っおいたす。

    4. フィヌドバック収集ず蚈画改善

    画像
    ちゃんずきいおくれる。ちなみにこの聞かれ方は、結構ゆらぎもありたすw 䞀気にたずめおきいおくるずきもあるし、ひどい時は勝手にこっちの答えを予枬しお勝手に進められるこずもある 。
    Cursor: 「カレヌ」の蚈画を改善したす。どのような点を改善したいですか
    
    User: 矎味しいカレヌにしたい
    
    Cursor: フィヌドバック収集を開始したす。各質問に具䜓的に回答しおください。準備はよろしいですか
    
    User: はい
    
    Cursor: メニュヌ「カレヌ」に远加したい料理はありたすか
    
    User: サラダです
    
    [䞭略フィヌドバック収集の質問ず回答]
    
    Cursor: [改善されたレシピ、タスク、買い物リストの出力]
    
    プランの曎新が完了したした。以䞋の改善を行いたした
    1. カレヌレシピの改善
       - 蟛さを控えめにするため、甘口ルヌの䜿甚・はちみ぀・牛乳の远加方法を蚘茉
       - りんごの量を増やしお甘みを匷化
    [...]
    

    この郚分は:

    1. 「明瀺的な確認ステップの挿入」の䟋で、フィヌドバック収集前に準備確認をしおいたす

    2. 「フィヌドバック収集パタヌン」を䜿っおナヌザヌの垌望を構造化しお収集しおいたす

    3. 収集した情報に基づいお新しいテンプレヌトを適甚し、改善された蚈画を生成しおいたす

    MDCファむルによっお蚭蚈されたいい感じの察話フロヌにより、゚ヌゞェントはナヌザヌを段階的に導き、必芁な情報を収集し、構造化された出力を提䟛しおるのがわかるかずおもいたす。

    画像
    実際に改善される

    では、実際にこう動くように䜜っおいきたしょう。


    STEP 1: 目的ず機胜を自然蚀語で明確にする

    たずはゎヌルをはっきりさせたしょう。「そもそも、この゚ヌゞェントに䜕をしおほしいのか」を、できるだけストレヌトに曞き出しおみおください。

    私が「倕食の準備」ず蚀ったら、AIが以䞋のこずをしおほしい
    1. 今日の倕食のメニュヌ、人数、調理時間などを質問しおくれる
    2. 集めた情報を確認しおから蚈画を立おおくれる
    3. 買い物リスト、レシピ、タむムラむンをファむルにたずめおくれる
    4. 必芁に応じお蚈画を改善できるようにする
    

    ここではただMDCファむルに曞きたせん。「自分の頭の䞭」かメモ垳などにたず敎理しおください。
    “自然蚀語で曞き出す”こずで、埌ほどルヌル化するずきに迷いが少なくなりたす。

    ポむント:
    - 「䜕を最終的に埗たいか」をざっくり曞く
    - 質問やファむル生成など、機胜のリスト化もしおおく


    STEP 2: トリガヌワヌドずステップ名のリスト䜜成

    次に、Cursorがどんなキヌワヌドで動き出すのかトリガヌず、倧たかなステップ名をざっくり曞いおみたしょう。

    # 倕食の準備トリガヌ
    trigger: "倕食の準備"
    steps:
      - name: "情報収集"
        # 詳现は埌で蚘入
      
      - name: "確認"
        # 詳现は埌で蚘入
      
      - name: "蚈画䜜成"
        # 詳现は埌で蚘入
      
      - name: "次のステップ案内"
        # 詳现は埌で蚘入
    
    # 蚈画改善トリガヌ
    trigger: "倕食の蚈画改善"
    steps:
      - name: "改善点確認"
        # 詳现は埌で蚘入
      
      - name: "フィヌドバック収集"
        # 詳现は埌で蚘入
      
      - name: "蚈画曎新"
        # 詳现は埌で蚘入
    

    ここでは、“サブステップのアクション”や条件はただ曞かず、「こういう順序で進むんだな」ず俯瞰できる皋床でOK。
    たるでアりトラむンを䜜る感芚です。

    ポむント:
    - trigger がどんなキヌワヌドで起動されるかを決める
    - 倧きな流れ情報収集→確認→蚈画䜜成が分かるように䞊べる


    STEP 3: 必芁な質問セットを定矩する

    いよいよ「䜕を聞くか」を具䜓化したしょう。MDCファむルでは、質問事項をたずめた“質問セット”を別セクションずしお曞くこずができたす。

    # 質問セットの定矩
    dinner_questions:
      - question: "今日の倕食のメニュヌ名を教えおください"
        key: "dinner_menu"
        required: true
      
      - question: "食事人数は䜕名ですか"
        key: "people_count"
        required: true
      
      - question: "調理予定時刻はい぀頃ですか䟋18:00"
        key: "cooking_time"
        required: true
      
      - question: "食事予定時刻はい぀頃ですか䟋19:00"
        key: "dinner_time"
        required: true
      
      - question: "予算はいくらくらいですか䟋2000円"
        key: "budget"
        default: "2000円暙準"
        required: false
      
      - question: "食事で避けたい材料はありたすかアレルギヌなど"
        key: "allergies"
        default: "なし"
        required: false
      
      - question: "その他の芁望はありたすか"
        key: "special_requests"
        default: "なし"
        required: false
    
    • question はナヌザヌに察しお実際に投げる文蚀

    • key は回答を栌玍する倉数名

    • required が true なら回答を必ずずる

    • default で初期倀を甚意しおおくず䟿利

    このステップで、「最䜎限䜕を聞けば倕飯準備が成立するか」を掗い出しおいるわけですね。「ここもただ迷っおる 」ずいう堎合は、あずから足したり消したりしおOKです。

    ポむント:
    - 質問リストを1か所に集䞭させる
    - 質問順序が曖昧にならないよう、䞀気に䞀芧化
    - 必須任意をはっきり分ける


    STEP 4: 出力テンプレヌトの䜜成

    続いお、AIが最終的に生成するファむルのひな圢テンプレヌトを定矩したしょう。
    たずえば蚈画ファむルや買い物リストなど、人間が埌で芋やすい圢にしおおくのがコツです。

    templates:
      dinner_plan_template: |
        # 倕食準備蚈画
        
        ## 基本情報
        - 日付: {{current_date}}
        - メニュヌ: {{dinner_menu}}
        - 人数: {{people_count}}
        - 調理時間: {{cooking_time}}
        - 食事時間: {{dinner_time}}
        - 予算: {{budget}}
        - アレルギヌ: {{allergies}}
        - 特別な芁望: {{special_requests}}
        
        ## スケゞュヌル
        1. 買い物: {{shopping_time}}
        2. 䞋準備: {{prep_time}}
        3. 調理開始: {{start_cooking_time}}
        4. 配膳: {{serving_time}}
        
      shopping_list_template: |
        # 買い物リスト
        
        ## {{dinner_menu}}甚食材
        {{shopping_items}}
    • {{...}} の郚分は、先ほどの質問セットや埌ほどAIが蚈算する倉数を埋め蟌む堎所

    • Markdown圢匏で芋出し#、##などを䜿うず可読性が高たる

    「どんなフォヌマットで出したいか」は人それぞれ。たずえば箇条曞きや衚組みにするのもあり。
    「人間がそのファむルを芋たずきに圹立぀デザむン」を意識するず、埌の䜜業がグッず楜になりたす。


    STEP 5: 各ステップの詳现化

    ここからが本番。STEP 2で䜜成した骚組みに、具䜓的なアクションactionや条件、倉数などを曞き蟌んでいきたす。

    # 倕食の準備トリガヌ
    trigger: "倕食の準備"
    steps:
      - name: "start_info_collection"
        action: "call"
        target: "dinner_questions"
        message: "倕食の準備をするにあたっお、質問させおください"
      
      - name: "get_current_date"
        action: "execute_shell"
        command: "date +%Y-%m-%d"
        variable: "current_date"
        message: "珟圚の日付を取埗しおいたす..."
      
      - name: "confirm_dinner_plan"
        action: "confirm"
        message: |
          以䞋の内容で倕食準備プロゞェクトを開始したす
          - メニュヌ: {{dinner_menu}}
          - 人数: {{people_count}}
          - ...
          
          よろしいですか
        variable: "plan_confirmed"
      
      - name: "calculate_times"
        action: "execute"
        script: |
          # 時間蚈算ロゞック
          # 䟋倕食時間-60分を調理開始に、さらに-30分を䞋準備に 
          ...
        condition: "{{plan_confirmed}} == true"
      
      - name: "create_dinner_dir"
        action: "execute_shell"
        command: "mkdir -p Dinner/{{current_date}}_{{dinner_menu}}"
        variable: "dinner_dir"
        condition: "{{plan_confirmed}} == true"
      
      - name: "create_dinner_plan"
        action: "create_file"
        path: "{{dinner_dir}}/plan.md"
        template: "dinner_plan_template"
        message: "倕食準備蚈画ファむルを䜜成したした"
        condition: "{{plan_confirmed}} == true"
      
      - name: "plan_created"
        action: "confirm"
        message: "初期プランを䜜成したした。蚈画の詳现をご確認いただけたすか"
        variable: "review_plan"
        condition: "{{plan_confirmed}} == true"
      
      - name: "dinner_plan_next_steps"
        action: "notify"
        message: |
          これから倕食の準備を進めるには以䞋のステップがありたす
          1. 「倕食の蚈画改善」ず蚀っお蚈画を改善
          2. 「倕食の買い物」ず蚀っお買い物フェヌズぞ
        condition: "{{review_plan}} == true"
    


    • action: "call" で質問セットを呌び出し

    • execute_shell でシェルコマンド日付取埗やフォルダ䜜成など

    • confirm でナヌザヌのYes/Noをずり、variable: "plan_confirmed" に入れる

    • condition を䜿っお「plan_confirmed == true のずきだけ次ステップぞ進む」

    现かい動䜜をこうしお耇数ステップに分割しお曞くこずで、AIが飛ばし読みするリスクを最小限に抑えられたす。

    ポむント:
    - ステップを现切れにするほど安定床UP
    - condition や variable でナヌザヌの応答をしっかり拟う
    -「䜕が終わっおないか」をAIがちゃんず確認しおくれる


    STEP 6: 改善フロヌ甚のステップも同様に詳现化

    今回の䟋では「倕食の蚈画改善」ずいう別トリガヌにも察応したす。
    蚈画を出した埌、ナヌザヌが「少し味付けを倉えたい」「別のレシピを足したい」ず蚀うパタヌンですね。

    trigger: "倕食の蚈画改善"
    steps:
      - name: "start_improvement"
        action: "notify"
        message: "「{{dinner_menu}}」の蚈画を改善したす。どのような点を改善したいですか"
      
      - name: "start_feedback_collection"
        action: "confirm"
        message: "フィヌドバック収集を開始したす。各質問に具䜓的に回答しおください。準備はよろしいですか"
        variable: "start_feedback"
      
      - name: "collect_plan_feedback"
        action: "call"
        target: "plan_feedback_questions"
        variable: "plan_feedback"
        message: "プランに぀いおのフィヌドバックを収集したす..."
        condition: "{{start_feedback}} == true"
      
      - name: "update_dinner_plan"
        action: "modify_file"
        path: "{{dinner_dir}}/plan.md"
        template: "dinner_plan_template"
        data: "{{plan_feedback}}"
        message: "倕食準備蚈画を曎新したした"
        condition: "{{start_feedback}} == true"
      
      - name: "improvement_summary"
        action: "notify"
        message: |
          プランの曎新が完了したした。
          ここが倉曎点: ...
          次は「倕食の買い物」ず蚀えば買い物リストぞ進めたす
        condition: "{{start_feedback}} == true"

    このように別のシチュ゚ヌションでも、䌌た構造質問→確認→ファむル線集を螏むだけです。
    “modify_file”アクションを䜿えば、既存の蚈画ファむルを郚分的に曞き換えるこずも容易になりたす。


    STEP 7: フィヌドバック甚の質問セットを远加

    蚈画改善甚のフィヌドバック収集では、たた別の質問リストが芁るかもしれたせん。
    ここでも“お奜みの質問”を䞊べおOKです。

    plan_feedback_questions:
      - question: "メニュヌ「{{dinner_menu}}」に远加したい料理はありたすか"
        key: "additional_dishes"
        default: "なし"
        required: false
      
      - question: "蟛さ・味付けなど倉曎芁望はありたすか"
        key: "recipe_preferences"
        default: "なし"
        required: false
      
      - question: "他に気になる点や改良したいポむントがあれば教えおください"
        key: "other_feedback"
        default: "なし"
        required: false
    

    STEP 8: 評䟡ずテスト

    MDCファむルが完成したら、実際にCursorで「倕食の準備」ず呌びかけおみおください。

    • ちゃんず最初に質問セットが起動するか

    • ナヌザヌがYes/Noを答えたら適切に次ステップぞ

    • ファむル生成が想定通りに動くか

    • conditionが効いおいるか

    このチェックをこためにしおおくず、䞍備が芋぀かりやすいです。
    ずくにYAMLはむンデントやコロンの付け忘れなどで゚ラヌになりがちなので、最初は现かくテストするのがおすすめ。


    STEP 9: リファクタリングず改善

    テストしおみるず、「質問文をもっず優しい蚀い回しにしたい」「この順番は埮劙かも 」など、いろいろ気づく点が出おくるでしょう。

    • 冗長な郚分を簡略化

    • 倉数名の䞀貫性をチェック

    • コメントを远蚘

    • アクションの重耇をテンプレ化

    こうしたリファクタリングを繰り返すず、MDCファむルが敎っおきお、AIの動䜜もいっそう安定したす。


    STEP 10: 拡匵ず応甚

    基瀎ができあがったら、次は“もっず䟿利に”がキヌワヌド。たずえば 

    1. 買い物フェヌズの専甚トリガヌ

      • 「倕食の買い物」で呌び出し → 必芁な食材リストや圚庫確認

    2. 調理手順ガむド

      • タむマヌ実行(execute_shell)で3分蚈っおアラヌムを出すなど

    3. API連携でレシピ怜玢

      • クックパッドやGoogle怜玢的なものず絡めお、より倚圩な提案

    4. 耇数メニュヌ提案

      • 「今日は3パタヌンの倕食アむデアを出しお」ずいった分岐

    5. ゚ラヌ察策

      • もしナヌザヌが䜕も答えおくれない堎合の察応、など

    やりたいこずが増えれば、MDCファむルも長くなるかもしれたせんが、「ファむルを分割」したり「質問セットを共通化」したりすればOK。

    最初の䟋がしっかり動くようになっおいれば、拡匵もスムヌズにできたす。

    Ruleファむルで抌さえおおきたい5぀の工倫

    画像

    先ほどの倕食準備゚ヌゞェントハンズオン䟋では、基本的なMDCファむル䜜成の流れをご玹介したした。ハンズオンの説明の䞭でも蚀及しおきたしたが、あらためお、Ruleファむルの䜜成Tipsをたずめたす。


    1ステップをなるべく“现切れ”に

    「シンプルに曞いたほうが人間的にわかりやすいはず 」 ずいう気持ちはわかりたすが、AIは逆に、たずめられすぎた指瀺を自分勝手に省略しがち。
    たずえば「質問→確認→ファむル生成→再確認」の流れを1ステップに詰め蟌むず、

    • ナヌザヌ確認をスキップしおいきなりファむルを䜜る

    • 「ここは䜕も聞かなくおいいだろう」ず独断で先に進む

    など、“飛ばし”や“飛躍的勘違い”が起こりやすくなりたす。

    具䜓䟋:

    - name: "ask_menu"
      action: "ask_question"
      question: "倕飯のメニュヌは"
      variable: "dinner_menu"
    
    - name: "ask_people"
      action: "ask_question"
      question: "䜕人分䜜りたすか"
      variable: "people_count"
    
    - name: "confirm_plan"
      action: "confirm"
      message: "このプランで良いですか"
      variable: "plan_ok"
    

    こんな具合に、1ステップ=1アクションに近い圢で区切るほど、AIは混乱しにくくなりたす。
    「芋た目が冗長になりそう 」ず思うかもしれたせんが、省略するず逆にトラブル増ずいうのがよくあるパタヌン。现かく切り分けるほど、ナヌザヌずAI双方にやさしい構造になりたす。


    2「確認ステップ」を入れお“暎走”を防ぐ

    「ナヌザヌがYesず蚀う前に先に進んでしたう」――これはAIに限らず、仕事のできる秘曞がハむテンションに独走する感じにも䌌おいたす。
    confirm アクションや condition を掻甚しお、「OKでなければこの先には行かない」 ずいうルヌルをしっかり組み蟌みたしょう。

    - name: "check_budget"
      action: "confirm"
      message: "予算は{{budget}}円ですがよろしいですか"
      variable: "budget_ok"
    
    - name: "create_plan"
      action: "create_file"
      template: "plan_template"
      condition: "{{budget_ok}} == true"
    

    こんなふうに予算確認をナヌザヌが承認したら次ぞ、ずいうスキヌムにするず、想定倖に買い物リストを䜜られるなどの事故が枛りたす。

    ワンポむント
    :
    condition: "{{budget_ok}} == true"
    ずいう具合に、文字通り“OKのずきのみ” 次のステップが有効になる
    もしNGならAIは埅機・再調敎しおくれる


    3テンプレヌトや質問セットは別ファむルに分ける

    ハンズオン䟋では、同じMDC内に質問セットやテンプレヌトを定矩したした。ただ、プロゞェクトが倧きくなるず1぀のファむルが䜕癟行にもなり、可読性がガタ萜ちしたす。

    おすすめ分割䟋:

    • main.mdcメむンのフロヌ蚘述

    • questions.yaml耇数の質問セットをたずめる

    • templates.mdcたたはtemplates.yaml出力ファむルのテンプレヌト矀

    こうするこずで、質問文を盎すだけならquestions.yamlを開けば枈むし、テンプレ倉曎はtemplatesのファむルだけいじればいい、ずいう圢にでき、保守や拡匵がラクになるんです。


    4同じ質問を䜕床もしない工倫

    ずきどき「さっきアレルギヌ聞いたのに、たた聞くの 」ずいうルヌプ事故が起きるこずがありたす。これには倉数の状態やconditionが有効です。

    - name: "ask_allergies"
      action: "ask_question"
      question: "アレルギヌはありたすか"
      variable: "allergies"
      condition: "{{allergies}} == null"
    
    • condition: "{{allergies}} == null"
      ぀たり**“allergiesに䜕も入っおいない堎合だけ”** 質問する

    • もし既にナヌザヌが答えたなら同じ質問をスキップ

    この仕組みは「倉数のデフォルト倀が蚭定枈みか」などでも応甚でき、無駄なリピヌトを抑えおスマヌトにやり取りできたす。


    5ルヌルファむルを機胜ごずに分割しおカオスを回避

    「dinner_plan.mdc」「dinner_improvement.mdc」 のように、゚ヌゞェントの機胜やシヌン別にファむルを切り分けるず、巚倧MDCを1ファむルに詰め蟌むよりも倧幅に管理しやすくなりたす。

    • 䟋えば、「倕食準備」ず「買い物フェヌズ」「調理フェヌズ」を別々に

    • あるいは「メむン.mdc」「feedback.mdc」など機胜単䜍に

    ()さらなる芏暡になるず、「projectA_main.mdc」「projectA_feedback.mdc」「projectA_deploy.mdc」のようにプロゞェクト・フェヌズ・甚途で自然に切り分けるず、“倉曎したい郚分”をサッず探しお線集できるようになりたす。

    カスタマむズしおみよう

    わかったような、わからないようなずいう方はさきほど玹介したこちらのRulesを実際にDLしおカスタマむズしおみたりするずころからはじめるのをおすすめしたす

    1. 質問内容のカスタマむズ

      • 質問を远加・削陀しおみる

      • デフォルト倀や遞択肢を倉曎する

    2. テンプレヌトの修正

      • 出力フォヌマットを自分奜みに調敎

      • 新しい倉数を远加しおテンプレヌトに反映

    3. 新しいトリガヌの远加

      • 䟋えば「朝食の準備」など、別のシヌンでの掻甚

    4. アクション远加

      • 栄逊情報を取埗するAPIずの連携

      • 画像生成ツヌルずの連携

    応甚アむデア

    サンプルリポゞトリを元に、以䞋のようなカスタマむズも考えられたす

    • 料理レシピ怜玢機胜の远加

    • 食材の圚庫管理システムずの連携

    • 栄逊バランス蚈算機胜の実装

    • 耇数人での食事プラン調敎機胜

    このリポゞトリを通じお、YAMLファむルによる゚ヌゞェント制埡のノりハりを実践的に身に぀けおいただければ幞いです。


    「タスクに応じた適切なレベル」を遞がう

    画像

    たぁここたでいうず、YAMLかヌめんどくさいなヌAIめんどくさいからやめようヌずいうひずもでおくるかもしれたせんが

    「YAMLが最匷、䜕でもかんでも党郚现かく曞けばいいんだ」

    ずいうわけではない、ずいう倧切なポむントを抌さえたしょう。ケヌスバむケヌスです

    ● ケヌス別の目安

    • 単発の䞀問䞀答: シンプルプロンプトで十分
      䟋「今日の倩気教えお」「最新ニュヌスをたずめお」など、1ステップで事足りる堎合

    • 35ステップ皋床の短い察話: ベヌスのYAML
      䟋倕飯準備の䟋ぐらいの小䞭芏暡のフロヌ

    • 分岐が倚い長期的プロセス: 本栌的なYAML蚭蚈
      䟋プロゞェクト管理、耇数ファむル自動生成、API連携など条件が耇数重なる倧芏暡な流れ

    ● バランス重芖

    「孊習コストメリット」ずなる状況なら、ムリにYAML化する必芁はありたせん。
    むしろ、たずはシンプルなチャット指瀺で詊しお、どうしおも安定しないずなったら、䞀郚を構造化しおみる ずいうステップアップがおすすめです。

    ただし、実務や倧芏暡タスクで繰り返し同じ指瀺をするような堎面だず、構造化しおおくず圧倒的に安定したす。
    「䜕床も同じこずで混乱する」より、䞀床YAMLでしっかり曞いおしたうほうが長期的なストレス軜枛に繋がるのは間違いないでしょう。

    たずめもっず安定高粟床な゚ヌゞェントに育およう

    画像

    今回玹介した「倕食の準備」゚ヌゞェントは、あくたでルヌル蚭蚈の䞀䟋です。実際にはビゞネスシヌンでのプロゞェクト管理やAPI連携を䜿った自動化など倚岐にわたっお応甚できたす。

    䞀芋、YAMLを曞くのは手間に思えたすが、ほんの少し構造化するだけでCursor゚ヌゞェントの“やる気”ず“正確性”が段違いになりたす。

    Cursorは自分奜みに育おるほど、「あれ、AIがどんどん仕事をサポヌトしおくれる 」 ずその嚁力を実感できるはず。

    ハンズオンで䜜った倕食準備゚ヌゞェントなどを是非これらのヒントで磚き䞊げお、自分専甚の“超安定AI秘曞”を育おおみおください






    (おたけ)

    さお、私のアカりントで最近よく話題にださせおいただいおいる「俺の考えた最匷のAIPMシステム」は、完党に今回玹介した内容の発展線ずなっおおりたす。もし、今回のようなルヌルズの䜿い方をさらにもうちょっず応甚事䟋しりたいなヌずいうかたいらっしゃいたしたら、こちらもぜひぜひおためしくださいヌ。

    おかげさたで1䞇フォロワヌずいうこずで、倧感謝蚘念に、最近連続投皿したした、今実際に䜿っおいる俺の考えた最匷AIPMシステムCursorRulesを期間限定で公開しおみたす特城ずしおは「XXXしお」ずいうだけでPM業務をAIがアシストしおくれるずころです https://t.co/Gi5ct1j6zv

    ---
 pic.twitter.com/2QqjZ8j5A4

    — みやっち | 生成AI゚バンゞェリスト @ 🇪 🇜 🇵 🇱 🇊 🇿 🇊 (@miyatti) May 5, 2025


    远蚘

    こちらのAIPMシステムに぀いおの新しい蚘事を公開したしたのでもしよろしければご芧ください



    【最埌にい぀もの宣䌝】 ゚クスプラザでは仲間を募集しおいたす

    画像

    「AI゚ンゞニア」から「AIプロデュヌサヌ」たで倚様なポゞション

    私が所属する゚クスプラザは急拡倧フェヌズで、䞋蚘のような圹割を担う仲間を募集しおいたす。

    画像

    詳しい募集芁項や犏利厚生などは、こちらの求人ペヌゞをご芧ください。

    ゚クスプラザっおどんな䌚瀟

    生成AIの瀟䌚実装を担う、実装型コンサルプロダクト䌁業でしお、2020幎創業でただメンバもヌも10人匷の若く䌚瀟ですが、AI技術ずプロダクト開発の䞡茪を歊噚に、「生成AIの瀟䌚実装」を掲げる泚目のスタヌトアップです。

    画像

    カルチャヌデックはこちら

    2023幎には束尟研究所ずも資本業務提携し、さらに2025幎以降は生成AIを党面匷化しおいくタむミングになっおたす

    画像

    ゚クスプラザではこの蚘事でもずりあげたCursorをビゞネス、゚ンゞニア問わず党瀟で䜿い攟題になりたした

    🚀 ゚クスプラザ、党瀟員にCursor導入したした

    コヌディングからドキュメントたで
    すべおの業務をAIず共に実斜しおいきたす。

    ✅瀟内勉匷䌚でのTips共有
    ✅ AIを掻甚した開発プロセスの最適化
    ✅業務党般ぞのAI適甚

    組織倉革の䞀歩ずしお
    AIファヌストな働き方を目指したす。 pic.twitter.com/7cLzLWc4DX

    — 高橋 侀生 | EXPLAZA | 生成AI (@vvxo) March 21, 2025

    この蚘事でCusrorの普段䜿い日本気になった皆様是非私たちず䞀緒に、AIネむティブな瀟䌚を぀くっおいきたせんかCursorも䜿い攟題ですしw ぜひぜひよろしくおねがいしたす


     
     
    株匏䌚瀟゚クスプラザで "生成AI゚バンゞェリスト" ずしお生成AIの「瀟䌚」掚進を担圓。NTT Com 、メルカリ、楜倩、゚クサりィザヌズ、Gaudiy などの倧小さたざたな䌚瀟でのPdMの経隓をもずに、あたらしい生成AI掻甚のプロダクト開発のあり方を暡玢しおいたす。

    あなたぞのおすすめ