Claude Code Plugins

Community-maintained marketplace

Feedback

mcp-memory-first-development

@NEXTAltair/LoRAIro
0
0

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

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name mcp-memory-first-development
description Memory-First development workflow integrating Serena short-term project memory and Cipher long-term design knowledge for efficient LoRAIro development
allowed-tools mcp__serena__list_memories, mcp__serena__read_memory, mcp__serena__write_memory, cipher_memory_search, cipher_store_reasoning_memory, cipher_extract_entities

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