Claude-skill-registry-data mcp-memory-first-development
Memory-First development workflow integrating Serena short-term project memory and Cipher long-term design knowledge for efficient LoRAIro development
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/mcp-memory-first-development" ~/.claude/skills/majiayu000-claude-skill-registry-data-mcp-memory-first-development && rm -rf "$T"
manifest:
data/mcp-memory-first-development/SKILL.mdsource content
Memory-First Development Skill
このSkillは、Serena短期メモリとCipher長期メモリを統合した2重メモリ戦略による効率的な開発ワークフローを提供します。
使用タイミング
Claudeは以下の開発フェーズでこのSkillを自動的に使用すべきです:
- 実装前: 過去の類似実装パターンと現在のプロジェクト状況を確認
- 実装中: 進捗、判断、課題を継続的に記録
- 完了後: 実装知識と教訓を長期記憶として蓄積
2重メモリ戦略
Serena Memory(短期・プロジェクト固有)
用途: 現在の開発進捗と一時的な開発メモ
保存内容:
- 現在の実装状況と次のステップ
- 進行中の開発判断
- 一時的な課題と解決策
- デバッグ情報と検証結果
- リファクタリング計画
特性:
- 高速アクセス (0.3-0.5秒)
- 頻繁な更新: 実装中に何度も読み書き
- 一時的: タスク完了後はアーカイブまたは削除
- プロジェクト固有: LoRAIro専用の状況記録
Cipher Memory(長期・設計知識)
用途: 将来参照可能な設計パターン資産
保存内容:
- 設計アプローチと判断根拠
- アーキテクチャ設計の意図と背景
- パフォーマンス・保守性の評価
- 実装時の課題と解決策
- ベストプラクティスとアンチパターン
- 技術選定の基準と結果
特性:
- 永続的: プロジェクト全体で参照可能
- 検索可能: cipher_memory_searchで過去事例を発見
- 汎用的: 他プロジェクトでも参照可能な知見
- 構造化: タイトル、コンテキスト、判断、根拠、結果、教訓
Memory-First開発サイクル
Phase 1: 実装前の事前確認
目的: 過去の知見を活用し、重複作業を回避 1. プロジェクト状況確認 (Serena): mcp__serena__list_memories() → 利用可能なメモリ一覧 mcp__serena__read_memory("current-project-status") → 現在のブランチ、最新の実装変更、次の優先事項 2. 過去の類似実装検索 (Cipher): cipher_memory_search(query="実装対象のキーワード") → 過去の設計パターン、実装アプローチ、教訓 3. 設計要素抽出 (Cipher): cipher_extract_entities(text="実装計画") → 重要な技術要素、アーキテクチャコンポーネント 結果: 既存知識を活用した効率的な実装開始
Phase 2: 実装中の継続記録
目的: 進捗と判断を可視化し、中断時の再開を容易に 実装中の定期的記録 (Serena): mcp__serena__write_memory( memory_name="active-development-tasks", content=''' # 現在の実装状況 - YYYY-MM-DD ## 進行中タスク - [現在作業中の内容] ## 完了した作業 ✅ [完了項目1] ✅ [完了項目2] ## 次のステップ 1. [次に実装すること] 2. [その次の作業] ## 技術的判断 - [実装中に行った重要な判断] 理由: [なぜその判断をしたか] ## 課題・ブロッカー - [現在の問題点] - [解決策候補] ''' ) 更新頻度: 重要な判断後、作業区切り時、中断前
Phase 3: 完了後の知識蓄積
目的: 実装知識を永続化し、将来の開発資産に 完了時の長期記憶化 (Cipher): cipher_store_reasoning_memory( title="[実装内容の簡潔な要約]", content=''' # 実装概要 [何を実装したか] ## 背景・動機 [なぜこの実装が必要だったか] ## 設計アプローチ [どのような設計判断をしたか] ## 技術選定 [使用した技術とその選定理由] ## 実装詳細 [重要な実装パターン、コード構造] ## 結果・効果 [実装による改善、パフォーマンス向上、コード削減等] ## 課題と解決策 [実装中に直面した課題とその解決方法] ## 教訓・ベストプラクティス [将来の実装で活用できる知見] ## アンチパターン [避けるべき実装方法、失敗から学んだこと] ''', tags=["実装分野", "技術タグ"], context="LoRAIro [feature名] 実装" ) 実施タイミング: 機能完了時、リファクタリング完了時、重要な技術判断後
Memory命名規則
Serena Memory(短期)
- current-project-status: プロジェクト全体の状況
- active-development-tasks: 現在の開発タスクと進捗
- {feature}wip{YYYY_MM_DD}: 作業中の機能実装メモ
- debug_{issue}_{YYYY_MM_DD}: デバッグ情報と解決策
- archived_{name}: 完了タスクのアーカイブ
Cipher Memory(長期)
- Title形式: "LoRAIro [機能名] [実装内容] 設計/実装"
- 例: "LoRAIro Direct Widget Communication パターン採用"
- 例: "LoRAIro Repository Pattern データベース設計"
- 例: "LoRAIro QRunnable非同期処理実装"
実装例: 新機能開発の完全フロー
シナリオ: 新しいGUIウィジェット実装
=== Phase 1: 実装前 === 1. 現在状況確認: mcp__serena__list_memories() mcp__serena__read_memory("current-project-status") 2. 過去の類似実装検索: cipher_memory_search(query="widget implementation pattern signal slot") 3. 設計要素抽出: cipher_extract_entities(text="新ウィジェット実装計画") 結果: 既存のWidget実装パターンを発見、重複実装を回避 === Phase 2: 実装中 === 実装開始時: mcp__serena__write_memory( "active-development-tasks", "## 進行中: NewWidget実装 - Signal/Slot定義 - UI layout構築 - イベントハンドリング実装" ) 重要な判断時: mcp__serena__write_memory( "active-development-tasks", "## 技術的判断 - Direct Widget Communication採用 理由: パフォーマンス向上、コード簡素化" ) === Phase 3: 完了後 === 長期記憶化: cipher_store_reasoning_memory( title="LoRAIro NewWidget PySide6実装パターン", content=''' # NewWidget実装 ## 設計アプローチ - Direct Signal/Slot接続 - PySide6 Designerによる UI定義 - 型安全なシグナル定義 ## 実装パターン ```python class NewWidget(QWidget): data_changed = Signal(str) # 型安全なシグナル def __init__(self): super().__init__() self._setup_ui() self._connect_signals() def _setup_ui(self): # Qt Designer generated UI pass def _connect_signals(self): # Signal/Slot接続 pass
教訓
- Qt Designerで効率的なUI構築
- 型ヒント付きSignal定義で安全性確保
- Direct Widget Communication で高速化 ''', tags=["gui", "pyside6", "widget-pattern"], context="LoRAIro GUI feature development" )
Serenaメモリ更新: mcp__serena__write_memory( "current-project-status", "✅ NewWidget実装完了 → 次: 単体テスト作成" )
## ベストプラクティス ### 効率的なMemory使用 1. **実装前は必ずMemory確認**: 過去の知見を活用 2. **実装中は定期的に記録**: 中断からの再開を容易に 3. **完了後は必ず長期記憶化**: 将来の開発資産として蓄積 ### 記録のタイミング - **Serena write**: 重要な判断後、作業区切り、中断前 - **Cipher store**: 機能完了時、リファクタリング完了時、重要な技術判断後 ### 記録すべき内容 #### Serena(短期) - 今何をしているか - 次に何をするか - どんな課題があるか - どんな判断をしたか(一時的) #### Cipher(長期) - なぜその設計をしたか - どのような技術選定をしたか - どんな結果が得られたか - 何を学んだか(教訓) ## LoRAIro固有のMemory戦略 ### Serena Memoryの活用 - **current-project-status**: 毎日の開発開始時に確認 - **active-development-tasks**: 実装中は1-2時間ごとに更新 - **feature実装メモ**: 複数日にまたがる実装の継続記録 ### Cipher Memoryの活用 - **アーキテクチャ判断**: Repository Pattern、Service Layer、Direct Widget Communication - **技術選定**: SQLAlchemy、PySide6、pytest の選定根拠 - **パフォーマンス改善**: キャッシュ統一、非同期処理、最適化アプローチ - **リファクタリング**: 大規模変更の意図、効果、教訓 ### 検索キーワード - **Cipher検索**: 具体的パターン名("repository pattern", "widget communication") - **技術名 + 用途**: "sqlalchemy transaction", "pyside6 threading" - **LoRAIro固有用語**: "direct widget communication", "memory-first development" ## Examples 詳細な使用例は [examples.md](./examples.md) を参照してください。 ## Reference Memory操作の完全なワークフローとパターンは [reference.md](./reference.md) を参照してください。