code-cleanup-targets.json•4.91 kB
{
  "schema": "memory_document_v2",
  "metadata": {
    "id": "cde3f456-7890-abcd-ef12-3456789abcde",
    "title": "不要コード削除とクリーンアップ候補",
    "documentType": "generic",
    "path": "code-cleanup-targets.json",
    "tags": [
      "cleanup",
      "refactoring",
      "schema-package"
    ],
    "lastModified": "2025-03-28T02:45:00.000Z",
    "createdAt": "2025-03-28T02:45:00.000Z",
    "version": 1
  },
  "content": {
    "description": "パッケージ移行作業の一環として整理すべき不要コードとクリーンアップ候補",
    "categories": [
      {
        "name": "マークダウン関連機能",
        "status": "削除推奨",
        "reason": "すでに@deprecatedとなっており、JSONベースの実装に完全移行済み。V2の実装では不要",
        "locations": [
          "DocumentPath.tsのisMarkdownやtoAlternateFormatメソッド",
          "マークダウン⇔JSON変換ユーティリティ",
          "マークダウンパーサー関連コード",
          "マークダウンテンプレート処理コード"
        ],
        "impact": "低(すでに非推奨になっているため影響は小さい)",
        "notes": "互換性のために残す必要があるなら、移行するが非推奨マークを残す"
      },
      {
        "name": "重複ロガー実装",
        "status": "統合推奨",
        "reason": "domain/logger/ILoggerとshared/utils/loggerが似た機能を持っており重複している",
        "locations": [
          "src/domain/logger/",
          "src/shared/utils/logger.ts"
        ],
        "impact": "中(ロガーは多くの場所で使われるが、インターフェースを統一できる)",
        "solution": "シンプルなshared/utils/loggerインターフェースを標準として採用し、domain/loggerは今回のリファクタリングで削除する"
      },
      {
        "name": "旧バージョンスキーマ",
        "status": "削除推奨",
        "reason": "V2スキーマが完成し採用されているため、V1以前の実装は不要",
        "locations": [
          "src/schemas/以下の非V2スキーマ",
          "旧形式のバリデーションロジック"
        ],
        "impact": "低(すでにV2に移行済みのため影響は限定的)",
        "notes": "schemasパッケージには最新版のみ移行する。古いバージョン互換性は必要に応じてV2内部に実装する"
      },
      {
        "name": "不統一な命名規則",
        "status": "統一推奨",
        "reason": "コードベース内で命名規則やスタイルが混在している",
        "examples": [
          "インターフェース名の'I'プレフィックスが一部だけに使われている",
          "プライベートメンバーの'_'アンダースコアプレフィックスが一貫していない",
          "関数名のcamelCaseとsnake_caseの混在"
        ],
        "impact": "低(パッケージ移行と一緒にリファクタリングしやすい)",
        "solution": "移行時に標準スタイルを決めて統一的に適用する。特に新パッケージでは一貫したスタイルを守る"
      },
      {
        "name": "未使用・冗長なコード",
        "status": "削除推奨",
        "reason": "時間の経過とともに残ったデッドコードや冗長なユーティリティ",
        "examples": [
          "使われていないユーティリティ関数",
          "重複した変換ロジック",
          "過剰にネストした条件分岐"
        ],
        "impact": "中(新パッケージではシンプルさを保ちたい)",
        "tools": [
          "ts-pruneなどを使って未参照エクスポートを特定",
          "ファイル名やインポートパスをgrepして使用状況を確認"
        ]
      }
    ],
    "implementation": {
      "approach": "段階的に実装",
      "steps": [
        "1. 現在のMCPパッケージ移行作業と並行して非推奨コードを特定",
        "2. 移行対象に選ぶファイルは最新のコーディングスタイルと実装に準拠したものを優先",
        "3. 古い実装や非推奨コードは新パッケージには移植しない決断をする",
        "4. すでに移行したコードについても、不要部分があれば削除する(例:DocumentPathのマークダウン関連メソッド)"
      ],
      "status": "計画中",
      "timeline": "パッケージ移行作業の一環として実施"
    },
    "considerations": [
      "既存テストが削除対象コードに依存している場合の対応",
      "古いAPIとの後方互換性確保(必要な場合)",
      "削除・変更によるサイドエフェクトの慎重な評価"
    ]
  }
}