# MCP Memory First Development

> Memory-First development workflow integrating Serena short-term project memory and Cipher long-term design knowledge for efficient LoRAIro development

- Skill: `majiayu000/mcp-memory-first-development` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/mcp-memory-first-development`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/mcp-memory-first-development/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/mcp-memory-first-development

---


# 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) を参照してください。

