Skip to main content
Glama

Memory Bank MCP Server

by t3ta
vscode-extension-plan-part3.json24.7 kB
{ "schema": "memory_document_v2", "metadata": { "id": "vscode-extension-plan-part3", "title": "VS Code拡張の実装計画 (Part 3: ユーザー体験とデプロイメント)", "documentType": "implementation_plan", "path": "vscode-extension-plan-part3.json", "tags": [ "vscode-extension", "implementation-plan", "memory-bank", "editor-integration", "user-experience", "deployment", "part3" ], "lastModified": "2025-03-30T12:00:00.000Z", "createdAt": "2025-03-30T12:00:00.000Z", "version": 1 }, "content": { "userExperience": { "keyInteractions": [ { "name": "ドキュメント作成", "workflow": [ "コマンドパレットまたはエクスプローラーからの新規作成コマンド", "ドキュメントタイプの選択(テンプレートベース)", "必須フィールドの入力(推奨値を提示)", "作成の確認と保存" ], "userInterface": { "entryPoints": [ "コマンドパレット", "エクスプローラーコンテキストメニュー", "アクティビティバーボタン" ], "illustrations": "テンプレート選択と必須フィールド入力のフォームウィザード" }, "errorHandling": [ "必須フィールドの未入力警告", "スキーマ違反の即時フィードバック", "同名ドキュメント存在時の上書き確認" ] }, { "name": "ドキュメント編集", "workflow": [ "エクスプローラーからドキュメントを選択", "専用エディタでの編集(コード/フォームモード切り替え可能)", "リアルタイム検証フィードバック", "自動補完と提案", "保存と検証の確認" ], "userInterface": { "entryPoints": [ "エクスプローラービュー", "最近使用したファイル", "検索結果" ], "illustrations": "コードエディタとフォームエディタの切り替え可能なインターフェース" }, "errorHandling": [ "リアルタイムエラー表示(エディタ内インライン)", "問題パネルでのエラーリスト", "保存時の最終検証" ] }, { "name": "ドキュメント検索", "workflow": [ "エクスプローラーの検索ボックスまたはコマンドパレットから検索開始", "検索条件の指定(タイトル、ID、タグ、コンテンツ内容など)", "検索結果のフィルタリングとソート", "検索結果からのドキュメント選択と開く" ], "userInterface": { "entryPoints": [ "検索ボックス", "コマンドパレット", "クイックアクセスバー" ], "illustrations": "高度な検索フィルターとリアルタイム結果表示" }, "errorHandling": [ "検索結果なしの場合の提案", "検索インデックス未構築時の通知" ] }, { "name": "関連性探索", "workflow": [ "ドキュメントの関連タブ選択", "関連ドキュメント一覧表示", "関連性グラフへの切り替え(オプション)", "関連ドキュメントの選択と開く" ], "userInterface": { "entryPoints": [ "ドキュメントエディタのサイドパネル", "コンテキストメニュー" ], "illustrations": "関連ドキュメント一覧とインタラクティブグラフ表示" }, "errorHandling": [ "関連ドキュメントなしの場合の通知", "参照が解決できない場合の警告" ] }, { "name": "ブランチ比較", "workflow": [ "コマンドパレットまたはブランチビューからの比較コマンド", "比較するブランチの選択", "差分の表示とナビゲーション", "差分の詳細表示と編集" ], "userInterface": { "entryPoints": [ "ブランチビュー", "コマンドパレット", "ドキュメントコンテキストメニュー" ], "illustrations": "ブランチ間の差分を表示する分割ビュー" }, "errorHandling": [ "ブランチが存在しない場合のエラー", "差分生成に失敗した場合のフォールバック" ] } ], "designPrinciples": [ { "name": "シンプルさ", "description": "複雑な機能も直感的に使えるシンプルなUIデザイン", "applicationPoints": [ "ドキュメント作成ウィザードの段階的なガイド", "コンテキスト依存のコマンド表示", "頻繁に使用する機能の優先的な表示" ] }, { "name": "一貫性", "description": "VS Codeの標準UIパターンに従った一貫性のある操作感", "applicationPoints": [ "VS Codeのショートカットキーとの統一", "アイコンとラベルの標準スタイル採用", "エラー表示と問題パネルの統合" ] }, { "name": "フィードバック", "description": "ユーザー操作に対する明確で即時的なフィードバック", "applicationPoints": [ "リアルタイムスキーマ検証", "操作完了時の視覚的確認", "長時間操作時の進行状況表示" ] }, { "name": "効率性", "description": "キーボードショートカットや操作ステップの最小化による効率的な作業フロー", "applicationPoints": [ "すべての機能へのキーボードアクセス", "よく使う操作のショートカット", "コンテキストに応じた適切な操作の提案" ] } ], "accessibilityConsiderations": [ { "category": "視覚的アクセシビリティ", "features": [ "ハイコントラストモードのサポート", "拡大表示との互換性", "色だけに依存しない情報伝達", "スクリーンリーダー対応" ], "implementation": { "techniques": [ "セマンティックHTML構造の使用", "ARIAラベルの適切な設定", "アイコンと色のコントラスト比の確保", "VS Code拡張のアクセシビリティAPIを活用" ], "testingApproach": "スクリーンリーダーとハイコントラストモードでの機能テスト" } }, { "category": "キーボードアクセシビリティ", "features": [ "すべての機能へのキーボードアクセス", "ショートカットキーのカスタマイズ", "タブナビゲーション対応" ], "implementation": { "techniques": [ "すべてのUIコンポーネントにキーボードフォーカス", "ショートカットキーの設定インターフェース", "タブオーダーの論理的構造化" ], "testingApproach": "キーボードのみでの全機能アクセステスト" } }, { "category": "認知的アクセシビリティ", "features": [ "シンプルで一貫したインターフェース", "ステップバイステップのガイド", "エラーメッセージの明確な説明" ], "implementation": { "techniques": [ "複雑なタスクの段階的な分割", "直感的なアイコンとラベルの使用", "ヘルプドキュメントへの容易なアクセス" ], "testingApproach": "ユーザビリティテストと初心者ユーザーによる評価" } } ], "localizations": { "supportedLanguages": [ { "code": "en", "name": "English", "status": "primary" }, { "code": "ja", "name": "日本語", "status": "full support" }, { "code": "zh-CN", "name": "简体中文", "status": "planned" } ], "localizationStrategy": { "approach": "i18nextベースの文字列外部化", "tooling": "VS Code Localization Extension APIを活用", "managementProcess": "ローカライズファイルの自動抽出とビルド時の統合" }, "localizationElements": [ "UIテキスト", "エラーメッセージ", "ヘルプドキュメント", "フォームラベル" ] } }, "integration": { "mcpIntegration": { "description": "VS Code拡張とMemory Bank MCPサーバーとの連携", "integrationType": "API通信とファイルシステム", "connectionPoints": [ { "name": "ファイルシステム連携", "description": "ローカルファイルシステム上のメモリバンクファイルの直接読み書き", "details": "FileSystemServiceクラスを通じて、VS Codeのワークスペース内のメモリバンクファイルと連携", "implementation": { "approach": "VS Code FileSystem APIを使用", "keyMethods": [ "readFile(uri: vscode.Uri): Promise<Uint8Array>", "writeFile(uri: vscode.Uri, content: Uint8Array): Promise<void>", "watchFiles(pattern: string): FileSystemWatcher" ] } }, { "name": "スキーマ連携", "description": "packages/schemasからスキーマ定義を取得", "details": "スキーマ定義ファイルを直接読み込み、または独自の処理でスキーマ情報を抽出", "implementation": { "approach": "Zodスキーマをロードして検証に使用", "keyMethods": [ "loadSchemaFiles(): Promise<SchemaCollection>", "validateDocument(schema: ZodSchema, document: unknown): ValidationResult" ] } }, { "name": "サーバーAPI連携", "description": "必要に応じてMemory Bank MCPサーバーのAPIと連携", "details": "複雑な操作(バリデーション、変換など)が必要な場合はAPIを利用", "implementation": { "approach": "REST APIクライアントの実装", "keyMethods": [ "validateDocument(data: unknown): Promise<ValidationResult>", "transformDocument(data: unknown, version: string): Promise<unknown>" ] } } ], "dataSync": { "strategy": "ファイルウォッチとリアルタイム更新", "details": "VS CodeのFileSystemWatcherを使用して、メモリバンクファイルの変更を監視し、リアルタイムで表示を更新", "implementation": { "approach": "ファイル変更イベントに基づく更新", "components": [ "FileSystemWatcherによる変更検出", "キャッシュ管理による高速アクセス", "変更差分の効率的な計算と表示更新" ] } }, "errorHandling": { "strategy": "エラーコード準拠とユーザーフレンドリーメッセージ", "details": "サーバー側のエラーコードを認識し、ユーザーにわかりやすいメッセージとして表示。ロギング機能との連携も行う。", "implementation": { "approach": "エラー変換マッピングとコンテキスト追加", "components": [ "エラーコードとメッセージのマッピングテーブル", "コンテキスト情報の付加", "エラーログとユーザーメッセージの分離" ] } } }, "vscodeIntegration": { "description": "VS Codeの機能との統合", "extensionPoints": [ { "name": "アクティビティバー", "description": "メモリバンク専用のアクティビティバーアイコンを追加", "details": "クリックでメモリバンクエクスプローラーを表示", "implementation": { "manifestEntry": "contributes.viewsContainers.activitybar", "icon": "media/icons/memory-bank.svg", "views": [ "memoryBankDocuments", "memoryBankBranches" ] } }, { "name": "エディタ", "description": "メモリバンク専用のカスタムエディタ登録", "details": "JSONファイルをメモリバンクドキュメントとして認識し、専用エディタで開く", "implementation": { "manifestEntry": "contributes.customEditors", "viewType": "memoryBank.documentEditor", "selector": [ { "filenamePattern": "*.json" } ], "editorImplementation": "DocumentEditorProvider" } }, { "name": "コマンドパレット", "description": "拡張機能関連のコマンドを登録", "details": "新規ドキュメント作成、検索、比較などのコマンドを提供", "implementation": { "manifestEntry": "contributes.commands", "commands": [ "memoryBank.createDocument", "memoryBank.openDocument", "memoryBank.compareDocuments", "memoryBank.viewRelationships" ] } }, { "name": "ステータスバー", "description": "現在の状態や操作を表示するステータスバーアイテム", "details": "現在のブランチ、検証状態などを表示", "implementation": { "component": "StatusBarController", "items": [ { "id": "branchIndicator", "position": "left", "tooltip": "現在のメモリバンクブランチ" }, { "id": "validationStatus", "position": "right", "tooltip": "ドキュメント検証状態" } ] } }, { "name": "WebView", "description": "リッチなUIを提供するためのWebView", "details": "フォームエディタ、グラフ表示などに使用", "implementation": { "component": "WebViewProvider", "useCases": [ "FormEditorPanel", "RelationshipGraphPanel", "AnalyticsDashboard" ], "technologies": [ "React", "TypeScript", "D3.js" ] } } ], "themeSupport": { "strategy": "VS Codeテーマに従う", "details": "VS Codeの現在のテーマを尊重し、それに合わせたUIを提供", "implementation": { "approach": "テーマ対応CSSクラスとカラー変数", "components": [ "テーマカラー変数の使用", "ダーク/ライトテーマ対応スタイル", "高コントラストモードのサポート" ] } } }, "testIntegration": { "description": "VS Code拡張のテスト方法", "testTypes": [ { "name": "ユニットテスト", "framework": "Jest", "scope": "内部コンポーネントとユーティリティ関数", "setup": "jest.config.jsで設定" }, { "name": "統合テスト", "framework": "VS Code Extension Testing", "scope": "拡張機能のAPIとVS Code連携", "setup": "extensionテストランナー使用" }, { "name": "E2Eテスト", "framework": "Playwright", "scope": "実際のVS Code環境での動作確認", "setup": "実際のVS Codeインスタンス起動" } ], "mockingStrategy": { "approach": "インターフェースベースのモッキング", "components": [ "FileSystemServiceの仮想ファイルシステム", "SchemaValidatorのモック", "VS Code APIのモック" ] } } }, "deployment": { "ci": { "tool": "GitHub Actions", "workflows": [ { "name": "ビルド&テスト", "steps": [ "依存関係のインストール", "リント", "ビルド", "ユニットテスト実行", "統合テスト実行" ], "trigger": "プルリクエスト、main/developブランチへのプッシュ", "implementation": { "filename": ".github/workflows/build-test.yml", "jobs": [ { "name": "build", "runs-on": "ubuntu-latest", "steps": [ "checkout", "setup-node", "install-dependencies", "lint", "build", "test" ] } ] } }, { "name": "パッケージング&公開", "steps": [ "依存関係のインストール", "ビルド", "テスト実行", "VSIX パッケージング", "VS Code Marketplaceへの公開" ], "trigger": "リリースタグの作成", "implementation": { "filename": ".github/workflows/publish.yml", "jobs": [ { "name": "publish", "runs-on": "ubuntu-latest", "steps": [ "checkout", "setup-node", "install-dependencies", "build", "test", "package", "publish-to-marketplace" ] } ] } } ] }, "strategy": "VS Code Marketplace公開", "versioning": { "scheme": "セマンティックバージョニング(SemVer)", "initialVersion": "0.1.0", "releaseChannels": [ { "name": "開発版(dev)", "audience": "内部開発者", "frequency": "継続的", "distribution": "内部ビルドとインストール" }, { "name": "プレビュー版(preview)", "audience": "早期テスターとフィードバック提供者", "frequency": "隔週", "distribution": "GitHubリリースとVS Code Marketplace(プレリリース)" }, { "name": "安定版(stable)", "audience": "一般ユーザー", "frequency": "月次", "distribution": "VS Code Marketplace(正式リリース)" } ] }, "documentation": { "types": [ { "name": "README.md", "content": "インストール方法、基本的な使い方、機能の概要", "audience": "すべてのユーザー", "location": "リポジトリルートと拡張機能メタデータ" }, { "name": "CHANGELOG.md", "content": "各バージョンでの変更点、新機能、修正内容", "audience": "既存ユーザー", "location": "リポジトリルート" }, { "name": "開発者ドキュメント", "content": "アーキテクチャ、コンポーネント設計、開発環境セットアップ", "audience": "拡張機能の開発者", "location": "docs/ディレクトリ" }, { "name": "ユーザーガイド", "content": "詳細な機能説明、ワークフロー例、トラブルシューティング", "audience": "メモリバンク利用者", "location": "docs/user-guide/ディレクトリとWebView内ヘルプ" } ], "formats": [ { "name": "マークダウン", "usage": "基本的な文書化", "tools": "VS Codeマークダウンプレビュー" }, { "name": "インライン画像とスクリーンショット", "usage": "視覚的な説明", "tools": "LICEcap、Snagit" }, { "name": "アニメーションGIF", "usage": "操作手順の視覚化", "tools": "LICEcap、Peek" }, { "name": "インタラクティブチュートリアル", "usage": "実践的な学習", "tools": "カスタムWebView実装" } ] }, "maintenance": { "updateStrategy": { "approach": "継続的なインクリメンタルアップデート", "schedule": { "bugFixes": "必要に応じて即時", "minorFeatures": "1-2週間ごと", "majorFeatures": "2-3ヶ月ごと" } }, "feedback": { "channels": [ { "name": "GitHubイシュー", "purpose": "バグ報告と機能リクエスト", "response": "24-48時間以内" }, { "name": "VS Code Marketplaceレビュー", "purpose": "一般的なフィードバック", "response": "週次チェック" }, { "name": "テレメトリ", "purpose": "使用状況と問題の自動収集", "implementation": "VS Code拡張のテレメトリAPI使用" } ], "prioritization": { "criteria": [ "影響を受けるユーザー数", "問題の深刻度", "実装の複雑さ" ], "process": "週次トリアージミーティング" } }, "endOfLifePolicy": { "majorVersionSupport": "最新メジャーバージョンとその前のバージョンのみサポート", "legacySupport": "重大なセキュリティ問題のみ対応", "migrationPath": "バージョン間の移行ガイドを提供" } } } } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/t3ta/memory-bank-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server