grimoire について
Grimoire CLIと.spell DSLを扱うユーザー向けの基本運用スキルです。セットアップ、作成、検証、シミュレーション、実行、アドバイザリーワークフロー、安全確認を案内します。
主な機能
- 01CLIのインストールとセットアップ案内
- 02.spellの作成と構文リファレンス
- 03整形、コンパイル、検証、シミュレーションの手順
- 04cast、resume、トリガー実行の案内
- 05アドバイザリーの作成、デバッグ、リプレイ
- 06ウォレット、取引所、トランザクションの安全確認
活用シーン
- 01.spellファイルの作成や編集
- 02コンパイルまたは実行時エラーの調査
- 03アドバイザリー判断の決定論的な再生
- 04資金移動を伴うcastの準備と確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ franalgaba/ grimoire --skill grimoireインストール後、Claude Code で/grimoireを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/anvil-cheatsheet.mdauthoring-workflow.mdcast-cheatsheet.mdcli-quick-reference.mdsyntax-capabilities.md詳細
Grimoire CLI スキル
このスキルは、Grimoire の基本的な運用手引きです。
使用する場面
以下を含むタスクで、このスキルを使用します。
- Grimoire ツールのインストール/セットアップ
.spellファイルの作成または編集- DSL の機能に関する構文の質問
- アドバイザリー(
advise)の作成、デバッグ、リプレイのワークフロー - セットアップ/コンパイル/検証/シミュレーション/キャスト/再開のワークフロー
- スペルのコンパイル時または実行時エラーのデバッグ
必ず守る読み込みルール
以下の references/ および docs/ のパスはすべて、このスキルのディレクトリ(skills/grimoire/)からの相対パスです。これらのルールは必須です。作成時のエラーにつながる構文の網羅性不足を解消できます。
停止 — まずこれを読んでください: コードベースを検索したり、構文パターンを grep したり、DSL の構文について記憶に頼ったりしないでください。このスキルに同梱されているリファレンスファイルが唯一の信頼できる情報源です。スペルの内容を書いたり編集したりする前に、以下のファイルをすぐに Read ツールで読み込んでください。
.spellの作成/編集を行うタスクでは、ほかの作業に取りかかる前に、Read ツールを使って以下のファイルをすぐに読み込んでください。references/syntax-capabilities.mdreferences/authoring-workflow.md
- CLI フラグの詳細を確認する場合は、Read ツールを使って以下のファイルをすぐに読み込んでください。
references/cli-quick-reference.md
- アドバイザリー関連のタスク(
advise、advisors、リプレイ)では、Read ツールを使って以下のファイルをすぐに読み込んでください。docs/how-to/use-advisory-decisions.mddocs/explanation/advisory-decision-flow.md
- ローカルフォークのプレビューに関するワークフローでは、Read ツールを使って以下のファイルをすぐに読み込んでください。
references/anvil-cheatsheet.mddocs/how-to/simulate-on-anvil-fork.md
- ウォレットのセットアップと実行キーのワークフローでは、Read ツールを使って以下のファイルをすぐに読み込んでください。
docs/how-to/use-wallet-commands-end-to-end.md
- RPC/署名者/トランザクションの診断では、Read ツールを使って以下のファイルをすぐに読み込んでください。
references/cast-cheatsheet.md
インストール方法の選択
最初に正常に動作する呼び出し方法を選び、そのセッションでは同じ方法を使用してください。
- グローバル:
npm i -g @grimoirelabs/cli- コマンドプレフィックス:
grimoire
- インストール不要:
- コマンドプレフィックス:
npx -y @grimoirelabs/cli
- コマンドプレフィックス:
- リポジトリ内:
- コマンドプレフィックス:
bun run packages/cli/src/index.ts --
- コマンドプレフィックス:
いずれかの方法で失敗した場合は、自動的に次の方法へ進んでください。
grimoire venue doctor ... が Unknown venue adapter "doctor" で失敗する場合は、リポジトリ内での呼び出し(bun run packages/cli/src/index.ts)を使用するか、グローバル CLI をアップグレードしてください。
リポジトリ内で Bun を実行する場合は、末尾の -- を必ず付けてください。これにより、Bun がフラグを消費せず、Grimoire に渡します。
クイックスタート(すぐに成功する手順)
カスタムスペルを書く前に、以下の手順を実行してください。
<grimoire-cmd> --help<grimoire-cmd> setup(対話式の実行オンボーディング)<grimoire-cmd> validate spells/compute-only.spell<grimoire-cmd> simulate spells/compute-only.spell --chain 1
3 つすべてが成功したら、スペルの作成に進んでください。
セットアップ時のセキュリティ/実行環境に関する注意事項:
- セットアップでは非表示のパスワードが求められ、入力内容は画面に表示されません
- RPC の入力を空欄にすると、チェーンのデフォルトのパブリック RPC が使用されます
--no-save-password-envを使用しない場合、セットアップによって.grimoire/setup.envが書き込まれることがあります- CLI は起動時に最も近い
.grimoire/setup.envを自動で読み込みますが、既存の環境変数は上書きしません
作成と実行に関するポリシー
- まず構文リファレンスを読みます(上記の必須ルール)。
- スペルを作成/更新します。
- 検証の前に
formatを実行して、レイアウトを標準化します。 validateを実行します(注意事項の多いスペルには--strictを使用します)。- エラー/警告を修正し、検証に合格するまで再実行します。
simulateを実行します。- ベニューのメタデータを照会する前、または価値を移転する実行の前に、対象のアダプター/チェーンに対して
venue doctorを実行します。- 例:
<grimoire-cmd> venue doctor --adapter uniswap --chain 1 --rpc-url <rpc> --json
- 例:
- EVM ベニューで価値を移転する実行を行う前に、Foundry Cast のクイックチェック(
chain-id、block-number、balance、nonce)でエンドポイントと署名者の状態を確認します。hyperliquidなどのオフチェーンベニューには Anvil/Cast のチェックを適用しないでください。
- 決定論的な実行を目的とするアドバイザリーステップでは、ドライラン/ライブの cast で
--advisory-replay <runId>を記録してから使用します。 - スペルに不可逆なアクションが含まれる場合、ライブ cast の前に
cast --dry-runを必須とします。 - 価値を移転するライブ
castの前に、ユーザーに明示的な確認を求めます。 - クロスチェーンモードでは、チェーンごとの RPC マッピングを明示的に指定する必要があります。
--rpc-url <sourceChainId>=<url>--rpc-url <destinationChainId>=<url>
- クロスチェーンの Morpho アクションでは、次のいずれかでマーケットマッピングを明示的に指定する必要があります。
--morpho-market-id <actionRef>=<marketId>(繰り返し指定可能)、または--morpho-market-map <path>
- Morpho の供給のみを行う戦略では、
vault_deposit/vault_withdraw(ボルトアドレスを明示)を優先します。
- ボルトアドレスがない場合は、候補となるボルトを一覧表示し、ユーザーに選択を求めます。自動選択は絶対に行わないでください。
- Morpho のマーケット戦略(借入/担保/貸付)では、
market_idを明示的に指定し、次の明示的なアクションを使用する必要があります。
morpho_blue.supply_collateral(asset, amount, market_id)morpho_blue.withdraw_collateral(asset, amount, market_id)
- アクションのトークンフィールドには、引用符で囲まない
0x...形式のアドレスリテラルを使用します。アドレスのように見える文字列を引用符で囲むとQUOTED_ADDRESS_LITERALが発生します。 - Morpho doctor の準備状況チェックでは、ウォレット環境変数を明示的に設定します(
GRIMOIRE_WALLET_ADDRESSを優先し、設定されていない場合はWALLET_ADDRESSを使用します)。 - クロスチェーン実行が待機状態のままになった場合は、
resume <runId>で続行します(決済状況をポーリングするには--watchを使用します)。 - パスワード/秘密鍵をエージェントのプロンプトやインラインのコマンド割り当てに含めないでください。
- ドライラン/ライブの cast では、
--private-keyより keystore と--password-envの組み合わせを優先します。 .grimoire/setup.envは平文のシークレット情報として扱い、ローカルのみに保管し、不要になったらローテーションまたは削除してください。- プロジェクトツリーの外でコマンドを実行する場合、必要に応じて
GRIMOIRE_SETUP_ENV_FILE=/abs/path/to/.grimoire/setup.envを設定します。
コマンド一覧(コア)
initsetupformatcompilecompile-allvalidatetriggerssimulatecastvenuesvenuevenue doctorhistorylogresumewallet(generate、address、balance、import、wrap、unwrap)
簡潔なコマンドシグネチャと安全性に関わる重要なフラグについては、references/cli-quick-reference.md を参照してください。
ランタイムの動作モデル
- ランタイムのセマンティクスは一貫しており、まずプレビューを行い、実行パスでのみコミットします。
simulateとcast --dry-runはプレビュー専用のフローです。- ライブ
castは、ポリシーとランタイムのチェックに合格すると、不可逆なアクションをコミットできます。 simulateは明示的な--rpc-urlをサポートし、優先順位は--rpc-url->RPC_URL_<chainId>->RPC_URLです。- フェーズ 1 のクロスチェーン実行では、2 つのスペルをオーケストレーションし(
--destination-spell)、1 つの論理的な run id と再開機能を使用します。 - 対象を絞った実行の前に、
triggers <spell>を使用して、安定したハンドラー ID をネイティブに確認します。 simulateとcastは、--trigger-id、--trigger-index、および旧式の--triggerによるトリガー選択実行をサポートします。- 複数のハンドラーを含むスペルでは、
--trigger-idを優先します。--triggerはラベルベースで、曖昧になる場合があります。 - クロスチェーンの
simulate/castでは、チェーンごとの実行にも同じ選択済みトリガーを引き継ぐ必要があります。 --jsonモードでは stdout のみを解析します。stderr には進行状況やスピナーの出力が表示される場合があります。
クエリ関数(価格/残高/APY/指標)
構造化データの取得には、常にアドバイザリーよりクエリ関数を優先してください。 これらは決定論的かつ高速で、LLM の呼び出しも必要ありません。
price(BASE, QUOTE[, SOURCE])— クエリプロバイダー経由でトークンの現在価格を取得します(Alchemy RPC URL が必要です)balance(ASSET[, ADDRESS])— RPC 経由でオンチェーントークン残高を取得します(任意の RPC URL を使用できます)apy(VENUE, ASSET[, SELECTOR])— プロトコルに基づく APY 情報を取得します(例:Aave、Morpho)metric(SURFACE, VENUE[, ASSET[, SELECTOR]])— 汎用プロトコル指標情報を取得します- セレクターの使い方:
- マーケット/Vault ID セレクター:
apy(morpho, USDC, "wbtc-usdc-86") - Vault セレクター(Morpho):
metric("vault_net_apy", morpho, USDC, "vault=0xVaultAddress") - Morpho の
vault_apy/vault_net_apyには明示的なセレクターが必要です。暗黙のデフォルトには依存しないでください。 - キー/値セレクター:
metric("quote_out", uni_v3, USDC, "asset_out=WETH,amount=1000000,fee_tier=3000") - 価格、残高、APY、その他の構造化指標を取得するだけの目的で、アドバイザリー(
advise)を使用しないでください
タスクで LLM による判断、推論、または解釈が必要な場合に限り、アドバイザリーを使用してください。
アドバイザリーの運用ルール
- アドバイザリーは明示的なステートメント形式にしてください:
x = advise advisor: "prompt" { ... }。 - アドバイザリーの出力は型付きコントラクトとして扱い、
outputでスキーマを適用してください。 - すべてのアドバイザリーブロックで
timeoutとfallbackを必須にしてください。 - アドバイザリーのロジックが価値を移動するアクションを制御する場合は、
validate --strictを優先してください。 - プレビュー/ドライランからライブ実行に移行する際は、決定性を確保するためにリプレイを使用してください。
- 実行時のデバッグには、詳細なアドバイザリートレースをストリーミングする
--advisory-trace-verbose(非 JSON モード)を使用してください。
プロトコルのメタデータとスナップショット
スナップショットのパラメーターと市場メタデータには、以下のプロトコルスキルを使用してください。
grimoire-aavegrimoire-uniswapgrimoire-morpho-bluegrimoire-hyperliquidgrimoire-pendlegrimoire-polymarket
プロトコル CLI の出力形式に関する方針:
- 自動化やネストされたペイロードには、
--format jsonを優先してください - 人が読みやすい概要には、
--format tableを使用してください
参考資料
references/syntax-capabilities.mdreferences/authoring-workflow.mdreferences/anvil-cheatsheet.mdreferences/cast-cheatsheet.mdreferences/cli-quick-reference.mddocs/how-to/simulate-on-anvil-fork.mddocs/how-to/use-wallet-commands-end-to-end.mddocs/how-to/use-advisory-decisions.mddocs/how-to/compare-protocol-metrics.mddocs/explanation/advisory-decision-flow.mddocs/reference/cli.mddocs/reference/spell-syntax.mddocs/reference/grimoire-dsl-spec.mddocs/reference/compiler-runtime.md