💬

IntentScript活用事例3選:AIとの対話を効率化する新しいアプローチ

に公開

IntentScript活用事例3選:AIとの対話を効率化する新しいアプローチ

TL;DR

  • IntentScript: 意図を構造化して記述するYAMLベースの軽量言語
  • 活用事例:
    1. AIとの対話継続・引き継ぎ
    2. 記事構成整理
    3. プログラム要求整理
  • 実績: 漠然とした「ファイルを暗号化したい」から仕様→動作ツールを生成
  • 始め方: 簡単な構造から始めて、AIとの対話で段階的に詳細化

AIとの対話で、こんな経験ありませんか?

「ChatGPTで長時間かけて要件を整理したのに、Claudeに移りたくなった時にまた一から説明...」

「技術記事を書こうと思ったけど、構成がまとまらずにAIとのやり取りがグダグダに...」

「作りたいツールがあるけど、要求を上手く伝えられずにAIが的外れなコードを生成...」

そんな悩みを解決する新しいアプローチが IntentScript です。

IntentScriptとは?

IntentScriptは「何をしたいか」という意図を構造化して記述するための軽量な言語です。
YAMLベースで書けるので、プログラミング経験がなくても直感的に使えます。

従来の自然言語での指示

商品には名前と価格があって、価格には税率10%を適用した税込価格も表示したい。
あと在庫数も管理したくて、在庫がゼロの時は「在庫切れ」と表示する機能も欲しい。

IntentScriptでの指示

商品:
  名前: string{required}
  価格: int{currency: JPY}
  税込価格: int{derive: "価格 * 1.1"}
  在庫数: int{min: 0}
  表示状態: string{
    derive: if(在庫数 > 0, "在庫あり", "在庫切れ")
  }

構造化されているので、AIが意図を正確に理解し、一貫した品質で処理できるようになります。
IntentScript - 意図を書くための新しい言語 で詳しく紹介しています。

それでは、実際の活用事例を見ていきましょう。

事例1:AIとの対話におけるセーブポイント

よくある困りごと

ChatGPTで技術的な相談をしていたけれど、Claudeの方が適していることに気づいた。
あるいは、長いスレッドで議論が複雑になりすぎて整理したい。
でも長時間かけて整理した内容を、また一から説明するのは面倒...

IntentScriptでの解決

複雑な議論の状況をIntentScriptでまとめておけば、どのAIモデルでもスムーズに引き継げます。
「ここまでの議論の内容をIntentScriptでまとめて」とAIに頼むと、自動で構造化してくれます。
手動で整理する手間も省けます。

出力例:

# context.is.yml
議論の状況:
  テーマ: "マイクロサービス設計の相談"
  
  現在の課題:
    - データベース分割の方針
    - サービス間通信の方法
    - 認証・認可の統一
  
  決定済み事項:
    - 言語はPython(FastAPI)
    - データベースはPostgreSQL
    - コンテナはDocker
  
  次に検討したい点:
    - 分散トランザクションの扱い
    - ログ収集・監視の仕組み
    - デプロイメント戦略

このファイルを新しいAIに渡すだけで、「この状況から続けて相談したい」とスムーズに継続できます。

実際の効果

  • 時間短縮: 再説明の時間を大幅削減
  • 情報の漏れ防止: 重要な前提条件を忘れない
  • 一貫性維持: 異なるAI間でも同じ理解レベル

事例2:記事構成の整理

よくある困りごと

技術記事を書きたいけど、構成がまとまらない。AIに相談しても、毎回微妙に違う提案が返ってきて決めきれない...

IntentScriptでの解決

記事の意図や構成をIntentScriptで構造化すると、論理的な流れを維持しながら執筆できます。

記事構成:
  タイトル: "Dockerコンテナの最適化入門"
  
  ターゲット読者: "Docker初心者〜中級者"
  
  記事の目的:
    - 基本的な最適化手法の理解
    - 実践的なテクニックの習得
    - 具体的な改善例の提示
  
  構成:
    - 導入:
        - なぜ最適化が必要か
        - この記事で学べること
    - 基本編:
        - レイヤーキャッシュの活用
        - .dockerignoreの重要性
        - マルチステージビルド
    - 実践編:
        - 具体的な改善例
        - before/afterの数値比較
    - まとめ:
        - 要点の整理
        - 次のステップ

実例: 実は、この記事自体もIntentScriptで構成を整理してから執筆しています。
複数のAIとの議論を通じて内容を洗練させ、最終的な記事構成を決定しました。

実際の効果

  • 論理的な構成: 読者の理解しやすい流れを維持
  • 執筆効率向上: 何を書くべきかが明確
  • 品質の一貫性: 記事全体を通して一貫したレベル

事例3:プログラム要求整理(実践例)

最初は漠然とした要求から

「.envファイルなどの機密情報を簡単に暗号化したい」

このような漠然とした要求から始まりました。最初から完璧なIntentScriptを書く必要はありません。
AIとの対話を通じて、段階的に要求を詳細化していけます。

AIとの対話で要求を具体化

人間: 「ファイルを暗号化したい」
AI: 「どのようなファイルを、どんな方法で暗号化したいですか?」
人間: 「.envファイルをパスワードで暗号化して、簡単に復号もできるツールが欲しい」
AI: 「CLIツールとして作りますか?使い方のイメージは?」
人間: 「パイプで渡して暗号化・復号できるシンプルなものがいい」

このような対話を経て、最終的に以下のIntentScriptが完成しました。

完成したIntentScript仕様

# ppc: パスワード暗号化でファイル暗号化/復号するCLIツール
Ppc:
  name: "ppc (Password Pgp Cli)"
  
  usage:
    encrypt: "export PPC_PASSWORD='secret' && cat .env | ppc -e > enc.env"
    decrypt: "export PPC_PASSWORD='secret' && cat enc.env | ppc -d > .env"
    short: "ppc -e または ppc -d でも可"
    
  arguments:
    - "-e --encrypt 暗号化する"
    - "-d --decrypt 復号する"
    
  input: stdin "暗号化/復号対象のテキスト"
  output: stdout "処理結果のテキスト"
  
  implementation: |
    gpg --symmetricコマンドのシンプルなラッパー。
    環境変数PPC_PASSWORDからパスワードを取得
    暗号化: gpg --symmetric --cipher-algo AES256 --armor
    復号: gpg --decrypt
    
  dependencies:
    - gpg

実装結果(動作するBashスクリプト)

この要求定義から、以下の機能を持つCLIツールが生成されました:

# 使用例
export PPC_PASSWORD='my-secret-password'
cat .env | ppc -e > secrets.env.asc  # 暗号化
cat secrets.env.asc | ppc -d > .env  # 復号

生成されたスクリプトには以下が含まれています:

  • ヘルプ機能
  • エラーハンドリング
  • 依存関係チェック
  • セキュリティ考慮事項
  • 実用的な使用例

仕様の埋め込み

生成されたBashスクリプトに、元のIntentScriptをヒアドキュメントとして埋め込みました:

#!/bin/bash
# IntentScript specification for this tool:
: << 'INTENTSCRIPT'
# 元のIntentScript仕様がここに保存される
INTENTSCRIPT

# 実際の実装コード
show_help() {
    # ...実装...
}

これにより下記が得られます:

  • 仕様と実装が一体化: 後から見返した時に意図が分かる
  • バージョン管理: Gitで仕様と実装を同時に管理
  • チーム共有: 他の人でも意図を理解して改修可能

実際の効果

  • 開発時間: 要求整理30分 + AI実装生成5分 = 35分で完成
  • 品質: エラーハンドリングや使いやすさまで考慮済み
  • 保守性: 仕様が明確なので後から修正・拡張が容易

実感としてもいきなり実装し、言葉で説明しながら修正していくのに比べ
効率よく開発できたと思います。

Claude Codeとの連携可能性

Claude Codeでは、プロジェクトの開発方針をAIに伝える仕組みが注目されています。
従来のCLAUDE.mdに加えて、IntentScriptを活用することで、
より構造化された開発ルールを定義できる可能性があります。

# CLAUDE.md

## 開発ルール

```yaml
開発方針:
  実装プロセス:
    - 機能の実装前に設計をユーザに説明し、承認を得る
    - 重要な機能には必ずテストコードを作成
    - 公開APIは必ずdocstringで文書化
  
  コーディングスタイル:
    - 型ヒント必須
    - 変数名は意味が明確になるよう命名
    - エラーハンドリングは適切に実装
  
  優先順位:
    1. 可読性・保守性
    2. 機能の完全性
    3. パフォーマンス

このような構造化された開発ルールを定義することで、
AIがより適切な開発支援を提供できる可能性があります。

今すぐ始める方法

IntentScriptを使い始めるのは簡単です

1. 簡単な例から始める

この記事の企画自体を例にしてみましょう

記事企画:
  目的: "IntentScriptの活用事例を紹介"
  
  ターゲット読者: "AI活用に興味があるエンジニア"
  
  構成:
    - つかみ: 読者の困りごとに共感
    - 事例1: 対話の継続・引き継ぎ
    - 事例2: 記事構成の整理
    - 事例3: プログラム要求整理
    - まとめ: 行動喚起
  
  重視する点:
    - 実用性重視の具体例
    - 段階的な理解しやすさ
    - すぐに試せる内容

2. AIとの対話で活用

作成したIntentScriptファイルを「この内容について相談したい」としてAIに渡すだけです。

3. 段階的に拡張

最初は簡単な構想から始めて、AIとの対話を通じて
徐々に詳細化していけば大丈夫です。

まとめ

IntentScriptは「何をしたいか」を構造化して表現することで、
AIとのコミュニケーションを改善します。

特に効果的なのは:

  • モデル移行時のスムーズな引き継ぎ
  • 記事や資料の論理的な構成整理
  • プログラム要求の明確化と実装品質向上

このように意図を構造化することで、AIの実装能力を最大限に活用できます。

複雑な要求をAIに伝える時、まずはIntentScriptで整理してみませんか?
きっと、これまでとは違う品質の結果が得られるはずです。


参考リンク

この記事の企画から執筆、レビューに至るまで多大な貢献をしてくれたAI達に感謝します。

Discussion