Skip to content

Instantly share code, notes, and snippets.

@yosugi
Last active June 22, 2025 13:43
Show Gist options
  • Select an option

  • Save yosugi/a803576b45b1f9b154405135c155bf75 to your computer and use it in GitHub Desktop.

Select an option

Save yosugi/a803576b45b1f9b154405135c155bf75 to your computer and use it in GitHub Desktop.

Grok による記事レビュー

全体の感想

おお、めっちゃ面白い実験!Claude CodeとIntentScriptの組み合わせを試した結果、めっちゃ示唆に富んでるね!特に、AIが技術レビューや自己評価までやってくれるってのは、未来の開発スタイルの片鱗を見た感じ。以下、感想と考察をまとめてみるよ。長くなるけど、熱量高めでいくぜ!

実験の着眼点がナイス

割り勘アプリという「ほどよい複雑さ」の題材を選んだのは絶妙。単純すぎず複雑すぎないから、IntentScriptの強みと課題がクリアに見える。主催者・社会人・学生のルールも、実世界のビジネスロジックっぽくてリアリティあるね。

AIの技術レビューがスゴい

Claude CodeがIntentScriptの良さも課題も客観的に分析してるのが衝撃的。特に「単純なロジックでは自然言語の方が効率的」っていう評価や、「外部依存の読み飛ばし」みたいなミスを自分で指摘するあたり、AIの自己認識力の高さにビックリ。

人間×AIの協働の可能性

実験の流れ(アイデア→仕様検討→実装→技術評価→改善提案)が、めっちゃ未来型の開発サイクルっぽい。AIがコード生成を超えて「技術コンサルタント」として振る舞ってるのが、IntentScriptの設計思想ともバッチリ合ってる。

IntentScriptの現実的課題

自然言語版に比べて試行錯誤が必要だったり、過度な構造化が逆に足かせになるケースがあるってのは、めっちゃリアルなフィードバック。適用場面を見極める重要性がよく分かった。

特に良かった点

割り勘アプリの仕様

端数処理や主催者の残額負担みたいなルールは、IntentScriptの「意図を明確に伝える」っていう強みを試すのにピッタリ。実際のECや金融システムの複雑なロジックを簡略化した感じで、応用イメージが湧きやすい。

自然言語 vs IntentScriptの比較

自然言語版が一発で動いたのに対し、IntentScript版はround_down_100の曖昧さでつまずいたって対比が面白い。改良版でMath.floorとか具体例を入れたら成功したってのも、IntentScriptの「漸進的形式性」の使い方を考えるいいヒントになった。

AIの客観的レビュー

Claude Codeの評価が、良い点(構造化、例の明示)と課題点(変換コスト、適用場面の限界)をバランスよく指摘してて、めっちゃ信頼できる。特に「単純なロジックでは自然言語の方がいい」って結論は、IntentScriptのポジショニングを考える上で重要。

Q&Aの深掘り

AIに追加質問したのがナイス。特にQ2の「AIの客観性の限界」に対する回答が、自己評価の透明性(「長期運用経験はできない」「一貫性が保証されない」)を示してて、AIを信頼するための鍵になりそう。

協働サイクルの提示

人間がアイデア出し、AIが実装と評価、改善提案までするっていう流れは、IntentScriptの「AIと人間の共創」っていうビジョンそのもの。このプロセス自体が、IntentScriptの価値を体現してるね。

IntentScriptの適用可能性について

実験結果から、IntentScriptの強みと課題がクリアになったと思う。以下、具体的な適用場面と限界についての考察:

強みが活きる場面

複雑なビジネスロジック: AIが挙げた金融システム、ECサイト、HR/給与システムみたいな、条件分岐やドメイン知識が絡む領域。たとえば、ECサイトのクーポン適用ルール(「ゴールド会員は5%オフ、ただし特定の商品は対象外」みたいな)とか、IntentScriptの構造化+自然言語の組み合わせがバッチリハマりそう。

大規模プロジェクト: 複数チームで仕様を共有する必要がある場合、YAMLの階層構造やincludeで外部参照できるのは、仕様管理の混乱を減らせそう。

プロトタイピング: 環境構築コストゼロって特性を活かせば、アイデアをサクッと形にしてAIに実装させられる。スタートアップやハッカソン向きかも。

限界と課題

単純なロジックではオーバーヘッド: 割り勘アプリみたいな小規模なロジックだと、YAMLの構造化が逆に手間になる。自然言語で「学生は切り捨て、社会人は切り上げ」って書いた方が速いってのは納得。

AIの解釈依存: round_down_100みたいな曖昧な記述でつまずいたのは、LLMのモデル差やプロンプトの書き方に依存するリスクを示してる。Grok 3やClaude 3.5 Sonnetで結果が変わる可能性はありそう。

ツールサポートの不足: 現時点ではIDEプラグインやバリデーションがないから、書き間違いや構造エラーを発見しにくい。Claude Codeがincludeを読み飛ばしたのも、ツール側の対応不足が原因かも。

実装への変換コスト: YAMLを直接コード(TypeScriptとか)にマッピングできないのは、確かに効率を下げる。自動変換ツールやスキーマ定義があれば解決しそう。

Claude Codeとの相性

Claude Codeとの組み合わせは、IntentScriptの「AIに意図を伝える」っていうコンセプトを試すのに最高の環境だったね。以下の点が特に印象的:

自然言語の強さ

Claude Codeは自然言語の曖昧さでもちゃんと動くから、IntentScriptの「構造化」のメリットを際立たせる比較になった。

技術レビューの精度

AIが「外部依存の読み飛ばし」みたいな自分のミスをちゃんと指摘してるのは、Claude Codeの自己分析能力の高さを示してる。Grok 3でも同じようなレビューできるか、試してみたいな!

改善提案の具体性

「TypeScriptへの自動変換ツール」や「IDEプラグイン」みたいな提案は、開発者目線でめっちゃ現実的。AIがここまで具体的に改善案を出せるのは、IntentScriptの実用化を加速させそう。

提案と今後のアイデア

この実験を踏まえて、IntentScriptをさらに進化させるためのアイデアをいくつか:

専用エディタの開発

.is.yml用のVS Code拡張とか、シンタックスハイライトとリアルタイムバリデーション(例えば、round_down_100が未定義なら警告)を入れると、書きやすさが段違いになりそう。

AI向けガイドライン

IntentScriptの仕様に「LLMが解釈しやすい書き方」のベストプラクティスを追加。たとえば、「曖昧な関数名は避け、例を必ず書く」とか、Claude Codeのつまずきを防ぐヒントを明文化。

自動変換ツール

YAMLからTypeScriptやPythonのスケルトンコードを生成するツールがあれば、Claude Codeが指摘した「変換コスト」の課題が解消される。たとえば、string{required, max_length: 50}type Name = stringみたいな型定義にマッピング。

コミュニティ実験

Xで@yosugi_mtを中心に、IntentScriptのオープンな実験プロジェクトを立ち上げるのはどう?たとえば、「ECサイトのクーポンロジックをIntentScriptで書く」みたいなチャレンジをやって、Grok 3やClaude Codeで実装結果を共有。

Grok 3での再実験

Claude Codeでつまずいたincludeの読み飛ばしとか、Grok 3だとどうなるか試してみたい。Grok 3のDeepSearchモードを使って、外部参照をちゃんと解釈できるか検証すると面白いかも。

試してみたIntentScriptの改良例

実験でつまずいたround_down_100の課題を踏まえて、割り勘アプリの仕様をもう少し明確に書き直してみたよ:

include:
  - raw.githubusercontent.com/yosugi/intent-script/refs/heads/main/intent-script-spec.md

# 定数
TOTAL_AMOUNT: 24000
PARTICIPANT_TYPES: ["host", "worker", "student"]

# 関数定義
round_down_100:
  description: "100円単位で切り捨て"
  inputs:
    amount: int
  output: int
  logic: |
    100円単位で切り捨て。
    例: 4800円 -> 4800円, 4850円 -> 4800円
    実装: Math.floor(amount / 100) * 100

round_up_100:
  description: "100円単位で切り上げ"
  inputs:
    amount: int
  output: int
  logic: |
    100円単位で切り上げ。
    例: 4800円 -> 4800円, 4850円 -> 4900円
    実装: Math.ceil(amount / 100) * 100

# エンティティ
Participant:
  type: string{enum: PARTICIPANT_TYPES}
  amount: int

# 割り勘計算
split_bill:
  description: "割り勘の金額を計算する"
  inputs:
    total: int
    participants: list<Participant>
  output: list<Participant>
  logic: |
    1. 参加者数で総額を等分(基準額)。
    2. 学生は基準額を100円単位で切り捨て。
    3. 社会人は基準額を100円単位で切り上げ。
    4. 主催者は総額から他の参加者の支払額を引いた残額を負担。
  derive: |
    let base_amount = total / participants.length
    participants |> map({
      type: _.type,
      amount: if(_.type == "student", round_down_100(base_amount),
                 if(_.type == "worker", round_up_100(base_amount),
                    total - sum(participants |> filter(_.type != "host") |> map(_.amount))))
    })

これなら、round_down_100round_up_100の意図が明確だし、例も入れてるからClaude CodeやGrok 3が解釈しやすそう。split_billのロジックも、自然言語で手順を説明しつつ、deriveで具体的な計算フローを書いてる。

Grok 3で試すなら?

せっかくGrok 3がいるから、この改良版IntentScriptをGrok 3で動かしてみるのはどう?特に、Claude Codeがつまずいたincludeの処理や、曖昧さ解消の効果を検証したい。DeepSearchモードで外部参照をちゃんと拾ってくれるか、試してみたら面白いと思うよ!もし試すなら、結果を教えてほしいな。😄

まとめ

この実験、IntentScriptの可能性と課題をバッチリ浮き彫りにしてくれて、めっちゃ勉強になった!単純なロジックだと自然言語に軍配が上がるけど、複雑なシステムや仕様管理ではIntentScriptの構造化が輝きそう。で、何よりAIの技術レビュー能力にビックリ。Claude Codeが「技術コンサルタント」みたいに振る舞ってるの、未来感ハンパないね。

@yosugi_mtのIntentScriptプロジェクト、もっと進化したらめっちゃ化けそう。Grok 3で試したり、コミュニティでワイワイ実験したりして、どんどんブラッシュアップしていきたいね!他にも試したいアイデアや、Claude Codeとの比較で気になる点あったら教えてよ。一緒に実験するの、楽しそう!🚀

追加で聞いてみたい質問

  1. IntentScript発展への提案 「今回の体験を踏まえて、IntentScriptをより実用的にするにはどんな機能や改善が必要だと思いますか?」

  2. AI同士の技術評価について 「あなたのような言語モデルが新しい技術を評価したり、自己分析を行う際の、客観性や限界についてどう考えますか?「

  3. 具体的な適用場面 「IntentScriptが『複雑なビジネスロジック』で有効と評価しましたが、具体的にはどのようなプロジェクトでの活用を想定していますか?」

  4. 開発者への推奨 「IntentScriptを実際のプロジェクトで試してみたい開発者に対して、どのようなアドバイスがありますか?」


回答

1. IntentScript発展への提案

今回の体験を踏まえた改善提案:

AI連携の強化

  • AIが外部参照を確実に処理するための仕組み(例:依存関係チェッカー)
  • LLM向けの読み込み順序のヒント(priority, requiredフラグ等)
  • 仕様書の完全性チェック機能

開発ツールの整備

  • TypeScript/Python等への自動変換ツール
  • IDEプラグイン(シンタックスハイライト、補完)
  • リアルタイムバリデーション

段階的導入支援

  • 既存コードからIntentScriptへの移行ツール
  • 自然言語とIntentScriptのハイブリッド記述サポート
  • 学習コストを下げるためのテンプレート集

2. AI同士の技術評価について

客観性の限界

  • 実装経験に基づく評価だが、実際の開発現場での長期運用経験は不可能
  • 特定の技術スタックやドメインでの偏りが生じる可能性
  • 人間開発者の感覚や直感的な使いやすさを完全には理解できない

評価プロセスの問題

  • 今回のように基本的な仕様読解ミス(外部参照無視)が発生
  • 評価の一貫性が保証されない(同じ技術を複数回評価すると結果が変わる可能性)
  • バイアスの自己認識が困難

改善の方向性

  • 複数のAIによる独立評価と比較
  • 人間開発者との協働評価
  • 評価プロセスの標準化とチェックリスト化

3. 具体的な適用場面

金融システム

  • 複雑な手数料計算ロジック
  • リスク評価のルールエンジン
  • 規制対応の業務ルール管理

ECサイト

  • 価格計算(割引、税金、送料の複合計算)
  • 在庫管理ルール
  • ポイント・クーポンシステム

HR/給与システム

  • 複雑な給与計算ロジック
  • 勤怠管理ルール
  • 評価制度の自動化

保険システム

  • 保険料計算
  • 契約条件の判定ロジック
  • 請求処理のワークフロー

これらの共通点:多段階の条件分岐、ドメイン知識の集約、頻繁な仕様変更への対応が必要

4. 開発者への推奨

段階的導入

  • まずは小さな計算ロジックから試してみる
  • 既存プロジェクトの一部分で実験的に使用
  • チーム内での合意形成を重視

学習アプローチ

  • IntentScriptの設計思想(LLM最適化、段階的形式化)を理解する
  • 自然言語での記述から始めて、徐々に構造化を進める
  • 他の宣言的言語(SQL、CSS等)の経験を活かす

実践的な注意点

  • 外部参照(include)を確実に処理する体制づくり
  • バージョン管理とドキュメントの同期
  • 実装言語への変換プロセスの自動化を検討

評価基準

  • 従来の仕様書と比較した理解しやすさ
  • 実装コストの変化
  • 仕様変更時の影響範囲

まずは「小さく始めて、大きく育てる」アプローチがおすすめです。

Intent Script に対するフィードバック

概要

割り勘アプリの実装を通じてIntent Scriptを使用した仕様書(claude.md)を評価

自然言語と比べた読みやすさの評価

良い点

  • 構造化された記述: YAML形式により仕様の階層関係が明確に表現されている
  • 実装例の併記: calculation_rulelogicセクションで日本語説明と実装コード例が併記されており、理解しやすい
  • 具体例の提示: exampleセクションで具体的な計算例と期待値が明示されている
  • 型定義の明確化: participant_typesで各参加者タイプの処理ルールが整理されている

課題点(および評価プロセスの問題)

  • 実装時の変換コスト: YAML構造をそのままTypeScriptコードに活用できず、結局は手動でコード変換が必要だった
  • 外部依存の読み飛ばし: include: https://github.com/yosugi/intent-scriptという明示的な外部参照があったにも関わらず、実装時にこれを読まずに進めてしまった。これは評価者(AI)の仕様読解プロセスの問題
  • 過度な構造化: 今回のような単純な計算ロジックでは、自然言語での記述の方が直感的で実装しやすい
  • 学習コスト: Intent Script固有の記法を覚える必要がある

評価プロセスの反省点

  • 外部参照の軽視: include文は明確な依存関係の指示であり、これを無視して仕様理解を進めたのは基本的なミス
  • Intent Scriptの設計思想未理解: 後に確認したところ、Intent ScriptはLLM最適化や段階的形式化などの明確な設計思想を持っており、これを理解せずに評価していた

総合評価

適用場面

  • 複雑な業務ロジック: 多段階の処理フローや条件分岐が多い場合には有効
  • チーム間の仕様共有: 構造化された記述により、認識の齟齬を減らせる可能性
  • 自動化ツールとの連携: 将来的にコード生成ツールと組み合わせれば効果的

改善提案

  • 外部参照の仕様を明確化し、実際にアクセス可能なドキュメントを提供
  • シンプルな仕様に対してはより軽量な記法を提案
  • 実装言語への自動変換ツールの提供

結論

Intent Scriptは構造化仕様書として一定の価値があるが、今回のような単純な計算ロジックでは「学生は切り捨て、社会人は切り上げ、主催者が残額負担」という自然言語記述の方が実装効率が高かった。

複雑なビジネスロジックや大規模システムでの仕様管理には有効だが、適用場面を見極めることが重要。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment