Serena Fast Operations Skill
このSkillは、SerenaのMCPツールを使った高速コード操作(1-3秒)の最適な使い方を提供します。
使用タイミング
Claudeは以下の場合にこのSkillを自動的に使用すべきです:
- •シンボル検索: クラス、関数、メソッドの定義を探す
- •ファイル構造把握: プロジェクトのディレクトリ構造を理解する
- •短期メモリ操作: 現在の開発進捗や一時的な判断を記録・参照する
- •基本コード編集: シンボル単位での実装、挿入、置換
- •参照追跡: シンボルの使用箇所を特定する
Serena高速操作パターン
1. シンボル検索(1-3秒)
get_symbols_overview - ファイル構造の概要取得
code
用途: ファイル内のトップレベルシンボル(クラス、関数、変数)の一覧を取得 タイミング: 新しいファイルを初めて調査する時 パラメータ: - relative_path: 対象ファイルの相対パス
find_symbol - 名前パスでシンボルを検索
code
用途: 特定のクラス、メソッド、関数を検索 タイミング: シンボル名が分かっている時 パラメータ: - name_path: シンボルの名前パス (例: "ThumbnailWidget/handle_click") - relative_path: 検索範囲を絞る場合のパス(省略可) - include_body: コード本体を含めるか (True/False) - depth: 子シンボルの深さ (例: 1でメソッド一覧) - substring_matching: 部分一致検索を有効化
search_for_pattern - 正規表現パターン検索
code
用途: 特定のコードパターンや文字列を検索 タイミング: シンボル名が不明確で、パターンマッチングが必要な時 パラメータ: - substring_pattern: 正規表現パターン - relative_path: 検索範囲(ファイルまたはディレクトリ) - restrict_search_to_code_files: コードファイルのみに限定 - paths_include_glob: 含めるファイルパターン - paths_exclude_glob: 除外するファイルパターン
2. Memory操作(短期・進捗記録)
list_memories - 利用可能なメモリ一覧
code
用途: プロジェクトに存在するメモリファイルを確認 タイミング: 関連するメモリを探す時、プロジェクト状況を把握する時
read_memory - 現在の進捗・状況確認
code
用途: プロジェクト固有の短期メモリを読み込む タイミング: 実装前の状況確認、過去の判断を参照する時 使用例: - current-project-status: プロジェクト全体の状況 - active-development-tasks: 現在の開発タスク - 実装記録: 具体的実装の詳細と根拠
write_memory - 開発進捗・一時的判断の記録
code
用途: 現在の実装進捗や一時的な判断を記録 タイミング: 実装中の進捗記録、次のステップのメモ、一時的な課題記録 記録内容: - 現在の実装状況と次のステップ - 進行中の開発判断 - 一時的な課題と解決策 - デバッグ情報と検証結果
3. コード編集(シンボル単位)
replace_symbol_body - シンボル本体の置換
code
用途: 関数、メソッド、クラス全体を書き換える タイミング: 実装の大幅な変更、リファクタリング パラメータ: - name_path: 対象シンボルの名前パス - relative_path: ファイルパス - body: 新しいシンボル本体
insert_after_symbol - シンボルの後に挿入
code
用途: 新しいメソッド、関数、クラスを追加 タイミング: 機能追加、ファイル末尾への追加 パラメータ: - name_path: 基準シンボルの名前パス - relative_path: ファイルパス - body: 挿入するコード
insert_before_symbol - シンボルの前に挿入
code
用途: import文の追加、前置き的なコードの挿入 タイミング: 依存関係追加、ファイル先頭への追加 パラメータ: - name_path: 基準シンボルの名前パス - relative_path: ファイルパス - body: 挿入するコード
4. 参照追跡
find_referencing_symbols - シンボルの参照箇所検索
code
用途: あるシンボルがどこで使われているかを特定 タイミング: リファクタリング影響確認、削除前の依存確認 パラメータ: - name_path: 対象シンボルの名前パス - relative_path: シンボルが定義されているファイル
効率的な使い方のガイドライン
コード調査の推奨手順
- •概要把握:
get_symbols_overviewでファイル構造を理解 - •詳細検索:
find_symbolで目的のシンボルを特定 - •影響確認:
find_referencing_symbolsで参照箇所を確認 - •編集実行:
replace_symbol_body/insert_*で実装
Memory-Firstアプローチ
- •実装前:
list_memories→read_memoryで現在状況確認 - •実装中:
write_memoryで進捗と判断を継続記録 - •完了後: 次のタスクのために
write_memoryで状況更新
パフォーマンス最適化
- •Fast operations (1-3s): Serenaツールを優先使用
- •Full file read: 最後の手段として使用、可能な限りシンボル単位で取得
- •Progressive disclosure: 必要な情報のみを段階的に取得
LoRAIro固有の注意点
プロジェクト構造
- •ソースコード:
src/lorairo/配下(メイン実装) - •テスト:
tests/配下 - •設定:
config/lorairo.toml - •ローカルパッケージ:
local_packages/genai-tag-db-tools,local_packages/image-annotator-lib
重要なアーキテクチャパターン
- •Repository Pattern: データベース操作は
src/lorairo/database/のリポジトリ経由 - •Service Layer: ビジネスロジックは
src/lorairo/services/のサービス層 - •Direct Widget Communication: GUI間通信は直接Signal/Slot接続
Memory命名規則
- •current-project-status: プロジェクト全体状況
- •active-development-tasks: 現在の開発タスク
- •{feature}implementation{date}: 具体的実装記録
- •archived_*: 完了タスクのアーカイブ
Examples
詳細な使用例は examples.md を参照してください。
Reference
Serenaツールの完全なAPIリファレンスは reference.md を参照してください。