見出し画像

実験ノート:GSNをvibe coding with Claude 4.5 Sonnet

IPAから、AIの安全性を評価するOSSが公開された。

GitHubに公開された、ソースコードをつらつら見てると、"GSN"という見慣れた名前が、おお、古の Goal Structured Notation!

GSN

GSNって、もともと安全性の議論(アーギュメント)を記録するための手段として作られたもので、ゴール(G)、戦略(S)、コンテキスト(C)、ソリューション(Sn)などをつかって、ゴールがどのような戦略で分解されて、そのコンテキストを記録し最後の枝にソリューションを張り付けることで、そのソリューションが出てきた経緯や議論を記述する。アサーションともいう。

産総研

よく使われるのは、システムの安全性に関するアーギュメントの記録ということで、ソフトウエアの世界では、「アシュアランスケース」と呼ばれる。

セキュリティ・バイ・デザインと アシュアランスケース(金子2016)より

などと思い出すのは、ソフトウエア工学老人のたわごとであるが、なんか懐かしい。

ChatGPTに聞いてみた

GSN goal structure notationについて知りたい、アーギュメントの形式化とか、アサーションの根拠などの応用の観点から調査している。

重要なのは、GSNが「証拠そのもの」ではなく、「証拠と主張の関係性」を扱う点ということだった。

GSNがアーギュメントやアサーションを表現できることは分かった、これをシステム設計に展開するために、①GSNに対する突っ込みパターン言語(strategy毎に突っ込みを入れるとか)、②GSNの双対となるような、システム実現言語、木として変換できる。 みたいな仕組みを構築したい

この質問の②はシステム分析の結果を裏返せばシステム設計なるという、自分の信念がある。

回答

「いいですねー」だそうだ、ツッコミの「パターン言語」とシステム実現言語を作ってくれると。。

ツッコミパターンの例である。

ツッコミパターン

そして、GSNからシステム設計へのマッピングルールは以下。

Claude 4.5 Sonnetでvibe coding

発表されたばかりの4.5 Sonnetの実力を見るのを兼ねて。

添付の、GSNに基づく、アーギュメントの展開と、これに対する突っ込みシステムおよびシステム構成への展開について、インタラクティブそれを実感できるhtmlアプリを作ってほしい。

例題は、https://github.com/Japan-AISI/aisev/tree/main/backend/src/gsn にある、01~10のgsnである。

★GSNとは
<ChatGPTの回答>

Claudeへの指示
GSN Analysis & System Transformation Tool

できたのは、「GSN Analysis & System Transformation Tool」、いやママやないか?

例題が10個

GSN構造図、なんとグラフにしてくれた。

「パターン検証」を押すと、

なるほど、UnsupportedGoalとUntestedAssumptionというツッコミパターンが適用可能と。。

「システム変換」では、

要求仕様に展開されて、、、、
どうも、Goalが要求に、Strategyがアーキテクチャ分解、Solutionはテストに、Assumptionは検証計画に裏返される。

感想

昔懐かし、GSNを見かけたので、最新のClaude 4.5でどこまでできるか試してみた。4.0 Sonnetに比べると、グラフの描画とかちょっとうまくなった気がする。一方機能の忖度は少し減って、ちゃんと指示しないとできなくなった感じもする。まあ正常進化ともいえるが、vibeなノリは減ったかな。。

追記:つづきもあるよ。


いいなと思ったら応援しよう!