| name | mcp-serena-fast-ops |
| description | Fast code operations using Serena MCP (1-3s) for symbol search, memory read/write, and basic code editing in LoRAIro project |
| allowed-tools | mcp__serena__find_symbol, mcp__serena__get_symbols_overview, mcp__serena__search_for_pattern, mcp__serena__list_dir, mcp__serena__read_memory, mcp__serena__write_memory, mcp__serena__list_memories, mcp__serena__find_referencing_symbols, mcp__serena__replace_symbol_body, mcp__serena__insert_after_symbol, mcp__serena__insert_before_symbol |
Serena Fast Operations Skill
このSkillは、SerenaのMCPツールを使った高速コード操作(1-3秒)の最適な使い方を提供します。
使用タイミング
Claudeは以下の場合にこのSkillを自動的に使用すべきです:
- シンボル検索: クラス、関数、メソッドの定義を探す
- ファイル構造把握: プロジェクトのディレクトリ構造を理解する
- 短期メモリ操作: 現在の開発進捗や一時的な判断を記録・参照する
- 基本コード編集: シンボル単位での実装、挿入、置換
- 参照追跡: シンボルの使用箇所を特定する
Serena高速操作パターン
1. シンボル検索(1-3秒)
get_symbols_overview - ファイル構造の概要取得
用途: ファイル内のトップレベルシンボル(クラス、関数、変数)の一覧を取得
タイミング: 新しいファイルを初めて調査する時
パラメータ:
- relative_path: 対象ファイルの相対パス
find_symbol - 名前パスでシンボルを検索
用途: 特定のクラス、メソッド、関数を検索
タイミング: シンボル名が分かっている時
パラメータ:
- name_path: シンボルの名前パス (例: "ThumbnailWidget/handle_click")
- relative_path: 検索範囲を絞る場合のパス(省略可)
- include_body: コード本体を含めるか (True/False)
- depth: 子シンボルの深さ (例: 1でメソッド一覧)
- substring_matching: 部分一致検索を有効化
search_for_pattern - 正規表現パターン検索
用途: 特定のコードパターンや文字列を検索
タイミング: シンボル名が不明確で、パターンマッチングが必要な時
パラメータ:
- substring_pattern: 正規表現パターン
- relative_path: 検索範囲(ファイルまたはディレクトリ)
- restrict_search_to_code_files: コードファイルのみに限定
- paths_include_glob: 含めるファイルパターン
- paths_exclude_glob: 除外するファイルパターン
2. Memory操作(短期・進捗記録)
list_memories - 利用可能なメモリ一覧
用途: プロジェクトに存在するメモリファイルを確認
タイミング: 関連するメモリを探す時、プロジェクト状況を把握する時
read_memory - 現在の進捗・状況確認
用途: プロジェクト固有の短期メモリを読み込む
タイミング: 実装前の状況確認、過去の判断を参照する時
使用例:
- current-project-status: プロジェクト全体の状況
- active-development-tasks: 現在の開発タスク
- 実装記録: 具体的実装の詳細と根拠
write_memory - 開発進捗・一時的判断の記録
用途: 現在の実装進捗や一時的な判断を記録
タイミング: 実装中の進捗記録、次のステップのメモ、一時的な課題記録
記録内容:
- 現在の実装状況と次のステップ
- 進行中の開発判断
- 一時的な課題と解決策
- デバッグ情報と検証結果
3. コード編集(シンボル単位)
replace_symbol_body - シンボル本体の置換
用途: 関数、メソッド、クラス全体を書き換える
タイミング: 実装の大幅な変更、リファクタリング
パラメータ:
- name_path: 対象シンボルの名前パス
- relative_path: ファイルパス
- body: 新しいシンボル本体
insert_after_symbol - シンボルの後に挿入
用途: 新しいメソッド、関数、クラスを追加
タイミング: 機能追加、ファイル末尾への追加
パラメータ:
- name_path: 基準シンボルの名前パス
- relative_path: ファイルパス
- body: 挿入するコード
insert_before_symbol - シンボルの前に挿入
用途: import文の追加、前置き的なコードの挿入
タイミング: 依存関係追加、ファイル先頭への追加
パラメータ:
- name_path: 基準シンボルの名前パス
- relative_path: ファイルパス
- body: 挿入するコード
4. 参照追跡
find_referencing_symbols - シンボルの参照箇所検索
用途: あるシンボルがどこで使われているかを特定
タイミング: リファクタリング影響確認、削除前の依存確認
パラメータ:
- 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 を参照してください。