indexer-core について
indexer-coreの導入、設定、保守、移行を支援するガイダンススキルです。利用者とメンテナーを対象に、関連資料の確認と、インデクサーモード、ロールバック、リオーグ動作の維持を重視します。
主な機能
- 01タスクに応じた参考資料の確認
- 02LogsIndexerとBlockIndexerの区別
- 03IndexerFactoryによる構築を標準化
- 04ロールバックとリオーグの動作を維持
- 057.xから8.xへの移行ガイド
- 06テスト、整形、ドキュメントの検証
活用シーン
- 01サービスへのindexer-coreの導入
- 02インデクサーモードの選択と依存関係の設定
- 03高速同期、ロールバック、リオーグの調査
- 04ライブラリ保守や7.xから8.xへの移行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ vechain/ vechain-ai-skills --skill indexer-coreインストール後、Claude Code で/indexer-coreを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/data-modeling.mdevent-pipeline.mdmaintenance-and-migration.mdmode-selection.mdruntime-model.md詳細
Indexer Core スキル
重要なルール
- まずリファレンスファイルを読んでください。 ユーザーのリクエストが以下の表にあるトピックに該当する場合、コードの作成、アーキテクチャの提案、または動作に関する質問への回答を行う前に、該当ファイルを読んでください。
- モードの選択は正確性に関わる判断として扱ってください。
LogsIndexerとBlockIndexerは置き換え可能ではありません。パフォーマンス特性だけが異なる同等の選択肢として提示しないでください。 - デフォルトでは
IndexerFactoryを使用してください。 通常のライブラリ利用では、実装クラスを手動で配線するのではなく、IndexerFactoryでインデクサーを構成し、ビルドしてください。 - 起動時のロールバックは意図された動作として扱ってください。 これはデータ整合性モデルとリオーグ復旧ワークフローの一部であり、バグではありません。
- 場当たり的なコード調査より、同梱されたリファレンスを優先してください。
indexer-coreリポジトリ内で作業する場合は、ローカルのリポジトリドキュメントとAGENTS.mdに沿ってください。ソースコードは主に、実装の詳細を確認したり、食い違いをデバッグしたりするために使用してください。
対象範囲
以下のような indexer-core のタスクで、このスキルを使用してください。
- ライブラリを別のサービスに統合する
LogsIndexerとBlockIndexerのどちらを使うか選ぶIndexerFactory、IndexerProcessor、IndexerRunnerを構成する- ABI イベント、VET トランスファー、またはビジネスイベントのインデックス作成を設計する
- 依存関係の順序、ファストシンク、ロールバック、リオーグの動作をデバッグする
- ドキュメントに記載された動作を維持しながら、ライブラリ自体を変更する
- 7.x から 8.x に移行する利用者の質問に答える
作業手順
1. タスクを分類する
ユーザーが次のどちらを必要としているか判断してください。
- 利用者向けのガイダンス:ライブラリの統合または構成に関するもの
- ライブラリのメンテナンス:
indexer-core自体の変更に関するもの
利用者向けのガイダンスでは、内部の説明に入る前に、適切なモードの選択と統合方法の助言を優先してください。
ライブラリのメンテナンスでは、タスクで契約の変更が明示されていない限り、ドキュメントに記載された契約を維持してください。
2. 該当するリファレンスを読む
以下の表を使用し、現在のリクエストに必要なファイルだけを読み込んでください。
3. 実装前にリスクの高い選択肢を明確にする
次のいずれかが不明な場合は、作業に着手する前に確認してください。
- ユーザーがブロック全体へのアクセスを必要としているのか、デコード済みイベントだけを必要としているのか
- あるインデクサーがブロックの処理を終えてから、別のインデクサーが処理を開始する必要があるのか
- 下流の利用者が生の ABI イベントと、より高レベルなビジネスイベントのどちらを求めているのか
- タスクが動作変更、ドキュメント変更、デバッグのいずれなのか
4. indexer-core の正確性を保って実装する
- 通常のインデクサーは
IndexerFactoryを通じてビルドしてください - リポジトリのドキュメントを、公開動作に関する信頼できる説明として扱ってください
- タスクで変更が明示されていない限り、ロールバックとリオーグのセマンティクスを維持してください
- 単一の実装詳細や型シグネチャから、公開契約を推測しないでください
5. 検証して納品する
以下の該当するすべての確認が完了するまで、タスクは完了ではありません。
- 対象を絞った検証:変更した動作を検証します
- より広範なテスト:変更が複数の領域にまたがる場合は
./gradlew testを実行します - フォーマット:Kotlin コードを変更した場合は
./gradlew spotlessCheckまたは./gradlew spotlessApplyを実行します - ドキュメントの整合性:公開動作や例を変更した場合は、ドキュメントとの整合性を確認します
参考ファイル
ほかの作業を始める前に、該当するファイルを読んでください。
| トピック | ファイル | ユーザーが次の内容に言及した場合に読む |
|---|---|---|
| ランタイムモデル、ライフサイクル、ロールバック、依存関係 | references/runtime-model.md | IndexerProcessor、IndexerRunner、ライフサイクル、ステータス、ロールバック、再編成、依存関係の順序 |
LogsIndexer と BlockIndexer の違い、およびファクトリーの選択肢 | references/mode-selection.md | LogsIndexer、BlockIndexer、includeFullBlock、dependsOn、高速同期、ブロック全体へのアクセス |
| ABI イベント、ビジネスイベント、VET の送金、フィルタリング | references/event-pipeline.md | ABI、ビジネスイベント、VET_TRANSFER、イベント条件、送金条件、クラスパス JSON |
| リポジトリの保守と移行 | references/maintenance-and-migration.md | テスト、フォーマット、ドキュメントの参照元、7.x と 8.x の移行、IndexingResult の名前変更 |
| データモデリング、BigDecimal、DECIMAL128、金額フィールド | references/data-modeling.md | BigDecimal、DECIMAL128、トークン量、ステーク、残高、金額フィールド、大きな数値 |
コメント
Markdown 対応