Oracle Skill - コンテキスト付きプロンプト送信によるコード解析支援
Clawdbot向けOracle Skillを利用して、ファイルバンドリング、エンジン選択、セッション管理を活用したAI支援型コード解析環境を構築する方法を解説します。
Oracle Skill - コンテキスト付きプロンプト送信によるコード解析支援
2026年現在、AI支援型のコーディングツールは、単一ファイルの解析からリポジトリ全体の理解へと進化している。しかし、大規模なコードベースを効率的にAIモデルに渡す手法は、依然として課題である。
Oracle(https://askoracle.dev)は、プロンプトと選択されたファイル群を1つのリクエストにバンドルし、複数のAIエンジン(API、ブラウザ自動化)経由で解析を実行するCLIツールである。Clawdbot向けOracle Skillは、このツールをClawdbot環境に統合し、長時間実行、セッション管理、ファイル選択最適化をサポートする。
本記事では、Oracle Skillの技術的仕様、導入方法、実装パターン、およびベストプラクティスを解説する。
選定基準
本記事で解説するOracle Skillは、以下の特性を持つ:
- プロンプト + 複数ファイルの一括送信(ワンショットリクエスト)
- ブラウザ自動化(GPT-5.2 Pro、Gemini)とAPI(Claude、Grok、Codex)対応
- セッション管理による長時間実行のサポート
- トークン数事前確認機能
技術的背景
Oracleとは
GitHubリポジトリ: https://github.com/steipete/oracle(推定、公式ドキュメント記載なし)
主な用途
Oracleは、以下のシナリオで使用される:
- 複数ファイルを含むバグ調査
- リファクタリング案の生成
- 技術スタック全体の理解が必要な質問
- 長時間実行(10分〜1時間)が許容される深い思考タスク
エンジンの種類
Oracleは、2つのエンジンをサポートする:
1. APIエンジン(--engine api):
- 対応モデル: Claude、Grok、GPT-4o、Codex等
- 認証: 環境変数
OPENAI_API_KEY、ANTHROPIC_API_KEY等 - 特徴: 高速、スクリプト化に適している
2. ブラウザエンジン(--engine browser):
- 対応モデル: GPT-5.2 Pro(ChatGPT)、Gemini(Google AI Studio)
- 認証: ブラウザの既存セッション利用
- 特徴: 長時間実行(深い思考モード)、セッション保存対応
デフォルト動作: OPENAI_API_KEYが設定されている場合はapi、そうでない場合はbrowser。
システム要件とインストール方法
動作環境
- Node.js: 22.22.0以上
- OS: macOS、Linux、Windows
- 対応ブラウザ(ブラウザエンジン使用時): Chromium系(Chrome、Edge、Brave)
インストール手順
方法1: npmグローバルインストール
npm install -g @steipete/oracle
方法2: npx(インストール不要)
npx -y @steipete/oracle --help
注意: pnpxは推奨されない(SQLiteバインディングの問題が発生する可能性)。
環境変数の設定(APIエンジン使用時)
# OpenAI API
export OPENAI_API_KEY="sk-..."
# Anthropic API
export ANTHROPIC_API_KEY="sk-ant-..."
主要機能とコマンド例
プレビュー実行(トークン消費なし)
実際にリクエストを送信する前に、バンドル内容を確認する。
# サマリー表示
oracle --dry-run summary -p "Explain the authentication flow" --file "src/**" --file "!**/*.test.*"
# 全ファイル内容表示
oracle --dry-run full -p "Find the bug in user login" --file "src/auth/**"
# トークン数レポート
oracle --dry-run summary --files-report -p "Refactor this module" --file "src/module.ts"
ブラウザ実行(推奨パス)
GPT-5.2 Proを使用した長時間実行。
oracle --engine browser --model gpt-5.2-pro -p "Analyze the codebase and suggest improvements" --file "src/**"
注意: ブラウザエンジンでの実行時間は10分〜1時間が標準(深い思考モードを使用する場合)。
マニュアルペースト(ブラウザ手動入力)
生成されたプロンプトをクリップボードにコピーし、手動でブラウザに貼り付ける。
oracle --render --copy -p "Explain the database schema" --file "src/db/**"
--copyは--copy-markdownのエイリアス。
リモートブラウザ実行
ブラウザホストを別マシンで起動し、リモート接続する。
ホスト側:
oracle serve --host 0.0.0.0 --port 9473 --token <secret>
クライアント側:
oracle --engine browser --remote-host <host:port> --remote-token <secret> -p "Task description" --file "src/**"
ファイル選択パターン
基本的なファイル指定
# 単一ファイル
oracle -p "Explain this function" --file src/index.ts
# ディレクトリ(再帰的)
oracle -p "Summarize the API" --file src
# Glob パターン
oracle -p "Review all TypeScript files" --file "src/**/*.ts"
除外パターン
# テストファイルを除外
oracle -p "Analyze production code" --file "src/**" --file "!**/*.test.ts" --file "!**/*.spec.ts"
# スナップショットを除外
oracle -p "Review components" --file "src/components/**" --file "!**/*.snap"
デフォルト除外対象
以下のディレクトリは、明示的に指定しない限り除外される:
node_modulesdistcoverage.git.turbo.nextbuildtmp
ファイルサイズ制限
- 1 MBを超えるファイルは自動的に拒否される
- 大規模ファイルを含める場合は、必要な部分を別ファイルに抽出することを推奨
セッション管理
セッションの保存場所
実行されたセッションは~/.oracle/sessionsに保存される。環境変数ORACLE_HOME_DIRでカスタマイズ可能。
セッション一覧の取得
# 過去72時間のセッション
oracle status --hours 72
セッションへの再接続
長時間実行中にCLIがタイムアウトした場合、セッションIDで再接続する。
# セッションIDで再接続
oracle session <session-id> --render
スラグによる可読性向上
セッションIDを読みやすくするため、スラグを指定できる。
oracle --slug "auth-refactor" -p "Refactor authentication module" --file "src/auth/**"
セッションID例: auth-refactor-a3f2
重複実行の防止
同一プロンプト + ファイルセットの実行は、デフォルトで拒否される。強制実行するには--forceを使用する。
oracle --force -p "Same prompt again" --file "src/**"
実装例
例1: TypeScriptコードのバグ調査
oracle --engine browser --model gpt-5.2-pro \
-p "Find the bug causing the authentication failure. The error message is: 'Invalid token signature'. Steps to reproduce: 1) User logs in, 2) Token is generated, 3) API call fails with 401. Relevant code should be in src/auth/ and src/middleware/." \
--file "src/auth/**" \
--file "src/middleware/auth.ts" \
--file "!**/*.test.ts"
例2: APIエンジンでのリファクタリング提案
export ANTHROPIC_API_KEY="sk-ant-..."
oracle --engine api --model claude-opus-4 \
-p "Suggest a refactoring plan for the user service. Current issues: 1) Code duplication in CRUD methods, 2) Lack of input validation, 3) No error handling. Constraints: Keep the public API unchanged." \
--file "src/services/user.ts" \
--file "src/models/user.ts" \
--file "docs/api-spec.md"
例3: トークン数の事前確認
oracle --dry-run summary --files-report \
-p "Analyze the entire codebase" \
--file "src/**" \
--file "docs/**" \
--file "!**/*.test.*"
出力例:
Total files: 45
Total tokens: 125,340
Estimated cost (GPT-4o): $3.76
例4: スラグ付きセッション管理
# セッション開始
oracle --slug "db-migration-plan" --engine browser --model gpt-5.2-pro \
-p "Create a migration plan from MySQL to PostgreSQL. Current schema is in src/db/schema/. Constraints: Zero downtime, backward compatibility for 2 weeks." \
--file "src/db/schema/**" \
--file "docs/database.md"
# セッション一覧確認
oracle status --hours 24
# 再接続
oracle session db-migration-plan-x9j2 --render
例5: マルチモデル比較
異なるモデルで同じタスクを実行し、結果を比較する。
# GPT-5.2 Pro
oracle --engine browser --model gpt-5.2-pro --slug "compare-gpt" \
-p "Optimize this SQL query for performance." \
--file "src/queries/slow_query.sql"
# Claude Opus 4
oracle --engine api --model claude-opus-4 --slug "compare-claude" \
-p "Optimize this SQL query for performance." \
--file "src/queries/slow_query.sql"
プロンプトテンプレートのベストプラクティス
高シグナル/ノイズ比のプロンプト構造
Oracleは、プロジェクトに関する事前知識を持たない。以下の情報を含める:
1. プロジェクト概要(2-4文):
This is a REST API built with Express.js and PostgreSQL.
The codebase follows a layered architecture: routes, controllers, services, and models.
Tests are written in Jest.
The API is deployed on AWS Lambda with API Gateway.
2. 問題の詳細:
Error: "Database connection timeout" occurs when processing large batch requests (>1000 items).
The error happens in src/services/batch-processor.ts at line 45.
Steps to reproduce: POST /api/batch with 1500 items.
3. 制約条件:
Constraints:
- Do not change the public API (routes must remain the same).
- Must maintain backward compatibility with version 1.x.
- Performance: Response time must be under 2 seconds.
4. 期待する出力:
Expected output:
- Root cause analysis.
- 3 possible solutions with trade-offs.
- Recommended solution with implementation steps.
例: 完全なプロンプトテンプレート
Project: E-commerce order management system
Stack: Node.js 20, Express 4.18, PostgreSQL 15, Redis 7
Build: npm run build (TypeScript compilation)
Test: npm test (Jest unit + integration tests)
Deployment: Docker on Kubernetes
Problem:
Order creation fails intermittently with "Unique constraint violation on order_id".
Error occurs in src/services/order-service.ts at line 120.
Steps to reproduce:
1. Send POST /api/orders with standard payload.
2. About 5% of requests fail (seems to happen during high traffic).
What I tried:
- Added retry logic (didn't help).
- Checked if order_id generation has duplicates (none found in logs).
Constraints:
- order_id must remain a UUID v4.
- Cannot change the database schema (production constraint).
Expected output:
- Root cause analysis (is it a race condition?).
- Recommended fix with code example.
- Any additional monitoring/logging suggestions.
Relevant code is in:
- src/services/order-service.ts (order creation logic)
- src/models/order.ts (Sequelize model)
- src/utils/uuid-generator.ts (UUID generation)
ユースケース
大規模リファクタリングの計画
複数モジュールにまたがるリファクタリングの影響範囲を分析し、段階的な実装計画を生成する。
レガシーコードの理解
ドキュメントが不足しているレガシーコードベースを、AIに解析させて技術負債を可視化する。
セキュリティ監査
全ファイルをスキャンし、SQLインジェクション、XSS、認証バイパス等の脆弱性を検出する。
テストカバレッジ向上
既存コードからテストケースを生成し、カバレッジ不足の領域を補完する。
制限事項とセキュリティ考慮事項
制限事項
- ワンショットリクエストのため、対話的なフィードバックループは不可
- ファイル選択が不適切な場合、重要な情報が欠落する可能性
- ブラウザエンジンは長時間実行(10分〜1時間)が標準(即時性が必要な場合は不適)
- 1 MBを超えるファイルは拒否される
セキュリティ考慮事項
機密情報の除外:
デフォルトでは.env、認証トークン、APIキー等を含むファイルは除外されないため、手動で除外する必要がある。
oracle -p "Task" --file "src/**" --file "!.env" --file "!config/secrets.yaml"
バンドル内容の事前確認:
送信前に必ず--dry-run fullで内容を確認する。
oracle --dry-run full -p "Task" --file "src/**" | less
セッションストレージの保護:
~/.oracle/sessionsには、過去のプロンプトとファイル内容が保存される。適切なアクセス権限を設定する。
chmod 700 ~/.oracle
API使用時のコスト管理:
GPT-4o、Claude Opus等の高価なモデルを使用する場合、事前にトークン数を確認する。
oracle --dry-run summary --files-report -p "Task" --file "src/**"
参考リンク
- Oracle公式サイト: https://askoracle.dev
- Clawdbot公式サイト: https://clawdbot.com/
- OpenAI API: https://platform.openai.com/docs/
- Anthropic Claude API: https://docs.anthropic.com/
本記事の情報は2026年2月15日時点のものです。Oracleの機能、対応モデル、APIは変更される可能性があります。最新情報は各公式サイトをご確認ください。
関連記事
Model Usage Skill - CodexBarによるAIモデル利用コストの分析機能
Clawdbot向けModel Usage Skillを利用して、CodexBarのローカルログからモデル別のAPI利用コストを集計・分析する方法を解説します。
BlueBubbles Skill - ClawdbotでiMessageを統合
Clawdbot向けBlueBubbles Skillを利用して、Apple iMessageおよびSMS経由でのメッセージ送受信を実現する方法を解説します。
ClawdHub Skill - Clawdbotスキル管理を効率化
ClawdHub CLIを利用して、Clawdbotスキルの検索、インストール、更新、公開を効率化する方法を解説します。
人気記事
ChatGPT(OpenAI)とClaude(Anthropic)の機能比較 2026年版。コーディング・長文解析・コスト・API料金の違いを検証
ChatGPT(GPT-4o/o3)とClaude(Sonnet 4.6/Opus 4.5)を2026年時点の最新情報で比較する。コーディング能力、長文処理、日本語品質、API料金、無料プランの違いをSWE-benchなどのベンチマーク結果とともに解説する。
【2026年2月20日 所感】「AIがコードを書く」は仮説から現実になった——しかし私たちはその意味をまだ消化できていない
2026年2月20日に観測したコーディングエージェント関連ニュースの総括と所感。Anthropicの自律性研究、cmux、MJ Rathbunのエージェント事故、HN「外骨格 vs チーム」論争、Stripe Minions週1000件PR、Taalas 17k tokens/sec——朝から夜までの流れを通じて見えてきた「AIがコードを書く時代」の実相を考察する。
868のスキルをnpx 1コマンドで——「Antigravity Awesome Skills」が主要AIコーディングエージェントの共通スキル基盤になりつつある
Claude Code・Gemini CLI・Codex CLI・Cursor・GitHub Copilotなど主要AIコーディングアシスタントを横断する868以上のスキルライブラリ「Antigravity Awesome Skills」(v5.4.0)を詳細分析。Anthropic・Vercel・OpenAI・Supabase・Microsoftの公式スキルを統合した設計思想、ロール別バンドル・ワークフロー機能、SKILL.mdによる相互運用性のアーキテクチャを解説する。
最新記事
AIエージェント間通信の標準化競争が始まる——AquaとAgent Semantic Protocolが同日登場
2026年2月23日、Hacker Newsに2つのAIエージェント通信プロジェクトが同日掲載された。Go製CLI「Aqua」とセマンティックルーティングを実装する「Agent Semantic Protocol」は、MCPが解決できないP2P・非同期通信の課題に取り組む。
Claude Sonnet 4.6、無料・Proプランのデフォルトモデルに——社内テストでOpus 4.5を59%の確率で上回る
Anthropicは2026年2月17日にリリースしたClaude Sonnet 4.6を、claude.aiの無料・Proプランのデフォルトモデルに設定した。価格はSonnet 4.5と同額の$3/$15 per 1Mトークン。社内評価ではコーディングエージェント用途でOpus 4.5を上回る結果が出ている。
GoogleがOpenClaw経由のGemini利用ユーザーのアカウントを永久停止——月額$250請求継続のまま
2026年2月23日、Hacker Newsで140pt/107コメントを集めたレポートによると、GoogleはOpenClaw(サードパーティクライアント)経由でGeminiを使用していたGoogle AI Pro/Ultraユーザーを予告なしに永久停止した。技術的・経済的背景を整理する。