Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CursorでAI活用のナレッジベースを構築する
Search
神崎
July 24, 2025
Design
0
82
CursorでAI活用のナレッジベースを構築する
IDEのAgentを使って以下のことを行うナレッジベースを構築する
・RDRA定義を行う
・要件を検証する
・仕様を定義する
・仕様を検証する
神崎
July 24, 2025
Tweet
Share
More Decks by 神崎
See All by 神崎
RDRAとは techRAMEN
kanzaki
2
38
役立つシステムを作るためのAI活用
kanzaki
0
83
RDRA3.0を知ろう
kanzaki
4
1.2k
ReScript_hokkaido_js
kanzaki
0
52
RDRAとLLM
kanzaki
5
1k
Other Decks in Design
See All in Design
ビジネスアナリシスはビジネス”分析”じゃないよ!~システム人材が価値を生むための基盤スキルとしてのビジネスアナリシス~
bpstudy
0
580
sachi_y_portfolio
sachi337
0
410
How to get a Tiger to Tulsa
mcduckyart
0
110
デザインから開発まで一貫したデザインシステムを構築するベストプラクティス / Best Practices for Building a Consistent Design System from Design to Development
lycorptech_jp
PRO
0
370
株式会社Muture_ソーシャル推進事業
muture
PRO
0
110
Kid Cowboy 103
marilutwin
0
280
freee + Product Design FY25Q4
freee
4
15k
DC Style Redesign
mcduckyart
0
140
Bulletproof Design System with TypeScript
takanorip
6
3.7k
Yumika Yamada Portfolio
yumii
0
1k
株式会社バクタム 会社説明資料
bactum
0
270
エンジニアでも捗る デザイナー的思考入門
tinykitten
PRO
1
1.1k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
990
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
What's in a price? How to price your products and services
michaelherold
246
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
A Tale of Four Properties
chriscoyier
160
23k
Writing Fast Ruby
sferik
628
62k
Adopting Sorbet at Scale
ufuk
77
9.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Transcript
CursorでAI活用のナレッジ ベースを構築する
• ㈱バリューソース • 神崎 善司 • twitter:@zenzengood • RDRA:https://www.rdra.jp/ •
著作 • モデルベース要件定義テクニック • RDRA2.0ハンドブック • RDRA3.0ハンドブック • 仕事 • RDRA導入支援 • 要件定義支援 • 既存システムの可視化支援 • 好きな事 • システムの可視化 • モデリング • 表形式でのモデリング • LLMの活用 2 https://www.rdra.jp/
LLMを使う上での課題感 •エンタープライズ向けの要件定義 • LLMには会社固有の情報は一切ない •課題 • どうやって適切なコンテキストを用意するか • LLMの出力をどのように軌道修正するか •
LLMの出力をいかに理解するか 3
多段に人とLLMがキャッチボール Prompt knowledge Prompt knowledge Prompt knowledge LLM 出力 出力
出力 初期入力 見直し 見直し 見直し Prompt knowledge 出力 4つのフェーズでコンテキストを膨らませ軌道修正する フェーズ1 フェーズ2 フェーズ3 フェーズ4 4 RDRA 入力に使う LLMの出力を見直し、次 のフェーズの入力とする Prompt入力 に悩ませな い
LLMと人がキャッチボールを行い要件を組立てる 5 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター
外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC LLM Run LLM Run LLM Run ビジネスの概要を入力 LLMの実行 何度も壁打ちし対象の 解像度を上げていく LLM の 出 力 を 見 直 し 軌 道 修 正 す る Diagram化 RDRA定義を俯瞰して 理解しやすくする 段 階 的 に コ ン テ キ ス ト を 用 意 •どうやって適切なコンテキストを用意するか •LLMの出力をどのように軌道修正するか •LLMの出力をいかに理解するか
LLMでRDRAを定義する https://vsa.co.jp/rdratool/v0.93/index.html
見えてきた新たな課題 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム
ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC LLM Run LLM Run LLM Run RDRAZeroOne Prompt LLM JSON Table 必要な要素は全て IDEの中にある • Promptを実行 Tableで修正 • 繰り返す Cursor Prompt Text Table tsv/addin Agent 7 プログラムで作りこむと、 柔軟性が失われる LLM・Cursorの性能は日 進月歩で進化する そうだ! Agentに要件定義させればいい 出力したものをどのよう に見直す? 何に着目すればいいの か?
Cursor Agentを活用する
今回の環境 0_RDRAZeroOne 1_RDRA 2_RDRASpec Phase1 Phase2 Phase3 Phase4 RDRA 論理データ
Prototype ZeroOne指示 Spec指示 ナレッジ 0からRDRAを 組立てる手順 RDRAとは何か 仕様のたたき台 を作る手順 要件の妥当 性検証 成果物 仕様の妥当 性検証 Validation Validation ナレッジ RDRAアドバイス 妥当性検証環境.csv 初期要望 要件組立て指示 Chatインター フェース 仕様組立手順 9 要件の妥当性検証 仕様の妥当性検証 CursorにKnowledgeを構築する Agentで成果物を生成 V字モデルの右側か ら精度を上げる 要件 仕様 KnowledgeをPromptとして利用 V字モデルを左と右から同時に進める
どうのような環境にしたか • 課題 • AIモデルが日々進化する • Cursorが毎週アップデートする • Agent •
要件(RDRA)を組立てる • 状況を確認する:疑似言語を使う • RDRAGraphを表示する • 要件の妥当性を検証する • 仕様のたたき台を作成する • 仕様の妥当性を検証する • Toolを使う • プロジェクト環境 • 環境依存させない(一部環境依存) • テキストとJavaScriptだけで実現する Cursor Knowledge (File) Agent 10 Knowledge Tool 起動 RDRA(要件) Spec(仕様) RDRAGraph 起動 生成 検証 状況 状況確認 Agent 生成・組立 検証
プロジェクトの構成 • 0_RDRAZeroOne • 初期要望からRDRA定義を生成する • 1_RDRA • 生成したRDRA定義 •
RDRA定義の妥当性を検証する • 2_RDRASpec • 仕様を生成する • 仕様の妥当性を検証する • helper_tools • 単機能のツール ファイルコピー~ • 状況把握と指示ファイル • 1_ZeroOne指示.md • 2_Spec指示.md • RDRAアドバイス.md 0_RDRAZeroOne 1_RDRA 2_RDRASpec Knowledge RDRA Knowledge RDRA Knowledge Spec • RDRAZeroOne.md • WhatIsZeroOne.md Phase1 Phase4 4フェーズでRDRAを 組立てる • RDRA.md • RDRAGraph.md • RDRASheet.md • Validation.md RDRASheetによるRDRA定義 • 21_data.md • 22_prototype.md • Validation.md 論理データモデルとPrototype Root • 1_ZeroOne指示.md • 2_Spec指示.md • RDRAアドバイス.md:疑似言語 • 妥当性検証環境.csv 関連データ.txt 11 Validation 要件の妥当性を検証する Validation 仕様の妥当性を検証する helper_tools ファイル削除・コピー クリップボード Command Agentが生成するファイル
メニューで指示する • メニューの表示 • 「…」/Clear All Chats • ⇒「?」 「?」functionを呼出す
副作用を避けるために Chat履歴を全て消す 「…」/Clear All Chats function ?(){ 次のメニューを表示する ▪ZeroOne 1.フェーズ単位の要件定義:RDRAZeroOneをフェーズ毎に実行する 2.一括要件定義:RDRAZeroOneの全フェーズを一機に実行する 3.生成した成果物の削除:RDRAZeroOneとRDRAファイルを削除する ▪RDRA 4.生成したファイルをRDRAフォルダーにコピーする 5.RDRAGraphを表示:関連データを作成しRDRAGraphを表示 6.RDRA定義の妥当性検証:RDRA定義の妥当性を検証します ▪RDRASpec:仕様 7.仕様の作成:論理データ構造の作成と画面の作成 8.プロトタイプ画面を表示する 9.仕様の妥当性を検証する 実行した番号を入力してください } RDRAアドバンス.md 疑似言語 12 メニュー 疑似言語でメニューを表示
AgentでRDRAを定義する Phase1~Phase4
初期要望からRDRA定義を組立てる • LLMでRDRAを定義する • 初期要望.txtの内容からRDRA 定義を生成する # システム要求 ## 背景
介護業界では、介護会員の要望に合わせ、様々な法規の中でサー ビススタッフの多様な働き方でスケジュールを調整する必要があ る ## 要求 ・サービススタッフの柔軟な働き方に対応しかつ介護会員の要望 に合わせたスケジュール調整を行える仕組みを持つ ## ビジネスポリシー ・各サービススタッフの要望に合わせたスケジュール管理を行う ・訪問介護事業で小規模事業社を複数持つので、そこを一元管理 を行う ・サービススタッフの働き方は自由に設定できる ・介護会員の要望に合わせたスケジュール調整を行う ## ビジネスパラメータ ・介護施設が増えた場合にも簡単に対応できる ・サービススタッフの増減に素早く対応できる ## 業務概要 ・介護会員の管理(名前、連絡先などの様々な属性を管理) ・訪問介護の実施記録を管理する ・新しいサービススタッフの教育 ・介護費用の計算と請求及び回収 初期要望.txt 1_ZeroOne指示.md phase1:方向付け phase2:深堀する phase3:グルーピング 0_RDRAZeroOne phase4細かい関係づけ RDRAZeroOne.md 14 RDRA定義 入力 出力 入力 要件をファイル で積み上げる 方向付け 深堀する グルーピング 細かい関係づけ
RDRAを 定義する RDRAZeroOne ・ • Cursor • ⇒「?」 • ⇒「1」
Phase1に出力される 「1」の入力でPhase 毎に実行する
CursorのAgentで何ができる1:フェーズ実行 実行結果 1.ZeroOne指示.md RDRAZeroOne.md RDRAを組立てる手順 が記述されている ファイルの場所を指示 16 Phase1: 指示に従って各ファイルを生成
RDRAアドバイス.md メニュー単位の実行 Phase1で出力されたファイルに 対して行うべきことを指示 WhatIsZeroOne.md 実行後に行うべきこ とを表示 Knowledgeを適切な単位に分割する Knowledgeの分割
CursorのAgentで何ができる:一括要件定義 • Cursor • RDRA定義をAgentで行う • 全Phaseを一括で実行する • RDRAアドバンス.md •
⇒「?」 メニューの表示 • ⇒「2」 一括要件定義 メニューを表示 「?」「2」 一括要件定義を実行 17 • Claude Codeは動く • その他のモデルでは動かない Demo.zipはClaude Codeで 作成したもの
ナレッジベースの構築
Knowledgeの種類 • 状況確認 • 生成した成果物の状況を把握し、次に行うことを提案 • フェーズ実行指示 • 実行手順の指示 •
フォルダーとファイルの位置 • 組立手順 • 要件の組立て方 • 仕様の組立て方 • 定義の宣言 • 要件 • RDRAとは • RDRAの定義方法(表形式のRDRA) • 妥当性検証 • 行うべきことの指示 定義の宣言 組立手順 状況確認 フェーズ実行 指示 Cursor Knowledge Table Agent 初期要望 1.ZeroOne指示.md RDRAアドバイス.md WhatIsZeroOne.md RDRAZeroOne.md
定義:RDRAとは # RDRA構造の説明 ・「アクター」:システムに関わる人の役割を表す ・「アクター群」:同じような役割を持つ「アクター」をまとめ、組織の役割を 示す場合もある ・「外部システム」:システムと連携する外部のシステムを表す ~ # モデル間のつながりの規則
・「業務」は複数の「BUC」を配下にもつ ・「BUC」は複数の「アクティビティ」を配下にもつ ・「アクティビティ」(仕事)を行う「アクター」がつながる ~ # 定義内容は各モデルのオブジェクトとして定義する 以下に例を示す 「会員」:モデルがアクター、オブジェクトが「会員」になる 「受注」:モデルが情報、オブジェクトが「受注」になる 「受注を登録する」:モデルがUC、オブジェクトが「受注を登録する」になる RDRA.md RDRAはメタモデルで 定義されている メタモデルを言語化 RDRAは定義する要素 が決められている
定義:RDRA定義のフォーマット定義 # 表形式のRDRAモデリング RDRASheetは表形式で要件定義を行うための形式です 要件定義はシステムの可視化と同じです ファイル内では階層構造を表すために空白セルは上位のセ ルの値を引き継ぐことで階層構造を表現する ## 定義ファイルの特徴とメリット ###
1. 表形式のメリットと表現方法 - **表形式によるシステム可視化** 表形式では、同じ行に並ぶ項目同士が関連しているとみ なすため、ダイアグラムでの配置や線による関係性の明示 よりも、要件の定義に集中できるというメリットがありま す。これにより、最初は大まかなアイディアを素早く全 ファイルに記入し、後から関連性を洗練させていくことが 容易になります。 ~~ ## 各ファイルの構造 表形式のRDRA定義は以下の5つのファイルで定義を行う。 ・「アクター」ファイル ・「外部システム」ファイル ・「BUC」ファイル ~~ RDRASheet.md RDRAのメタモデル構造 を表形式で表現 表形式はLLMの入力と 出力にそのまま使える 表形式を言語化する 表形式をタブ区切りのTSVファイル として処理する
組立手順:4フェーズでRDRAを組立てる # RDRAで要件定義を行うためのフェーズ ## **RDRAZeroOneは段階的に要件を定義するために4つ のフェーズですすめる** 各フェーズでモデルを洗い出すときは「RDRA構造の説明」 を十分に理解し洗い出す ## フェーズ1
### フェーズ1の目的 ### 目的を達成するために次のことを行ってください ## フェーズ2 ### フェーズ2の目的 ### 目的を達成するためフェーズ1の結果を元に以下の~ ~~ ## フェーズ3 ### フェーズ3の目的 ### 目的を達成するためフェーズ2の結果を元に以下の Stepを実行してください #### Ste1:フェーズ2の「情報.tsv」「状態.tsv」「条 件.tsv」「バリエーション.tsv」を元に以下の指示に従って ください ~~ ## フェーズ4: ### フェーズ3の目的 ### 目的を達成するためフェーズ3の結果を元に以下の ~~ RDRAZeroOne.md フェーズ毎にコンテキストを積み上げていく 4フェーズの組立を言語化する RDRAを4フェーズで要件を組立てる 方向付け 深堀する グルーピング 細かい関係づけ
定義:WhatIsZeroOne # RDRAZeroOneは以下の理由で4つのフェーズですすめている ## 4フェーズで進める意味 ## フェーズ1の位置づけ ### 初期要望.txtの位置づけ ~
### 業務の位置づけ ## フェーズ2の位置づけ ### 業務の位置づけ ~ ### バリエーションの位置づけ ## フェーズ3の位置づけ ### 業務の位置づけ ~ ### 外部システムの位置づけ ## フェーズ4の位置づけ フェーズ4の目的はフェーズ3で要件の組立が終わったので、より詳細な要件間の関係づけを行います ### 情報の位置づけ 情報に関係する他モデルである、状態モデルとバリエーションを関連づけ、情報と他のモデルの関係を 明らかにし、 相互のオブジェクトの必要性を明確にする ### 状態の位置づけ 状態モデル内の状態を明確にする 最初の状態と最後の状態を明確にし、状態の遷移にユースケースを結び付け、業務との関係を明らかに し、 相互のオブジェクトの必要性を明確にする ### 条件の位置づけ ビジネスルールとなる条件について他のモデルであるバリエーション、状態モデルとの関係を明確にし、 相互のオブジェクトの必要性を明確にする 各フェーズ毎の出力に対 して行うべきことを示す LLMの出力に対して何に着 目し、どのように直すのか
番外編 LLMが賢くなっている 私:なぜ空のファイルを作ったのか 問題:LLMが空のファイルを作り出した AI:ひな型を作成する設定になっている 私:何処に「ひな型を作成する」設定があるのか AI:明確なひな型を作成する指示はありません ~連続的に実行する phase1 =
「0_RDRAZeroOne/RDRA/phase1」 if phase1 not exist "アクター.tsv" { return "アクターが定義されていないので「1_ZeroOne指示.md」Phase1を実行します“ }else if phase1 not exist "外部システム.tsv" { return "外部システムが定義されていないので「1_ZeroOne指示.md」Phase1を実行します“ }else if phase1 not exist "ビジネスポリシー.tsv" { ~~ RDRAアドバイス.md ファイルが無ければ生成するようにしている LLMが最適化しようとしている? 実行を強要する LLMが賢くなって思いもしない挙動が増えている
LLMの出力を如何に理解するか
表形式からGraph形式に変換する 26 複雑な処理はAgentでは なくプログラムで変換 表形式からノードの関 連へと変換する 表形式で定義するが 構造を持っている Agentはプログラムを実 行する
ツール起動:定義情報をグラフィカルに表示する • 行っていること • 関連データの作成 • RDRA定義からRDRAGraphのデータとなる、関連デー タを作成する • 関連データの内容をクリップボードにコピーする
• RDRAGraphを表示 RDRA定義から関連データ を作成する(プログラム) 関連データの内容をクリッ プボードにコピーする クリップボードから データを取り込む RDRA定義 • BUCシート • アクターシート • 外部システムシート • 情報シート • 状態シート • 条件シート • バリエーションシート 関連データ クリップボード
要件の妥当性を検証する
要件の妥当性検証 妥当性検証環境.csv 拠点ごとのアクターの制約から要件の検証を行う 拠点 アクター 人数 制約 説明 RDRA定義 •
BUCシート • アクターシート • 外部システムシート • 情報シート • 状態シート • 条件シート • バリエーションシート 要件妥当性検証結果.md LLM 入力 入力 出力 妥当性検証環境.csv Validation.md 要件の検証方法を記述 入力 妥当性を検証するためにシス テム化対象の環境を入力する RDRA 妥当性検証環境 システムの導入環境に対して、有効な 要件となっているかを検証する
要件の妥当性を検証する 要件妥当性検証結果.md
仕様の作成:2_RDRASpec • 論理データモデル • 画面の項目 • 条件⇐今後実現
論理データモデルの作成 編集はMermaidで行う RDRAの情報モデルから論 理データモデルを作成する
画面の項 目の追加 • Cursor • @RDRAアドバンス.md • ⇒「?」 • ⇒「8」
業務・BUCからアクター別の画面に構造変換する 業務 BUC アクター 画面 項目 コンテキスト 状態モデル 条件 バリエーション
状態 情報 外部システム群 外部システム アクター群 アクター イベント 画面 タイマー 業務 BUC アクティビティ * * * * * * * * * UC メールなどの通知 外部システムが 提供する画面 外部システム との連携 人が画面を使 う ビジネス上 の区切りを 表す UCが状態を変える ある状態の時に UCが実行できる システムを使う仕事 はUCとつながる 外部システムが提供する画面を使 う UCが提供する画 面 UCが情報 を操作する UCが条件に従う 情報に従属する バリエーションがある Agentで構造を変換する
プロトタイプの画面項目エディター prototype_server.js prototype.html Http-serverとして起動し prototype.htmlを起動 prototype.jsonにアクセス ターミナルで以下のコマンドでも実行できる node .¥helper_tools¥web_tool¥prototype_server.js {
"businesses": [ { "business": "介護会員管理", "BUCs": [ { "BUC": "会員登録", "actors": [ { "actor_name": "管理者", "screens": [ { "screen_name": "会員登録画面", "fields": [ ~~ prototaype.json
仕様の妥当性検証
仕様の妥当性 検証結果 画面に関係のある論理データで 項目満たせるかを検証する 画面 画面 画面 画面 画面 画面
論理データの項目の 不足wを指摘 画面項目から論 理データの項目 を充実させる
環境依存部分はうまくいかない • Windowsに依存する処理 • ファイルの読み込み時のエンコード • コマンドが環境依存しエラーを起こす この部分でエラーになる PowerShellで使えない設定になる 実行コマンドをLLMに読ませて実行させる
Claude Code △Grok4
まとめ:CursorRDRAの構成 0_RDRAZeroOne 1_RDRA Knowledge • RDRAZeroOne.txt • WhatIsZeroOne.txt Knowledge •
HowToUseRDRA.txt • RDRA.txt • RDRAGraph.txt • RDRASheet.txt • Validation.md Validation • 妥当性検証入力.tsv • 妥当性検証結果.tsv RDRA • Phase1: • Phase2: • Phase3: • Phase4: RDRA • BUC.tsv • アクター.tsv • バリエーション.tsv • 外部システム.tsv • 情報.tsv • 条件.tsv • 状態.tsv 2_RDRASpec Knowledge • 21_data.md • 22_prototype.md • Validation.md Spec • data.md • prototype.json 段階的RDRA定義 拠点 アクター 人数 制約 説明 妥当性検証環境.tsv RDRAアドバイス.md 1.ZeroOne指示.md 1.Spec指示.md Marmaid Validation • 妥当性検証ケース一覧.md • 妥当性検証データ.md RDRAZeroOneの生成物を RDRAフォルダーにコピー 妥当性検証環境.tsvを 作成しRDRA定義の妥 当性を検証する 0からRDRAの定義 RDRA定義の妥当性検証 仕様のたたき台作成・妥当性検証
まとめ:テストの文脈での応用 テストシナリオ テストケース テストシナリオ テストケース ナレッジ LLM LLM • 前処理ナレッジ
• 標準化された フォーマット • 前処理ナレッジ • 標準化された フォーマット 標準化された 要件定義 標準化された 仕様 LLM LLM 40