最終更新: 2026/06/22 18:56
MAS-097: 未使用変数の一括クリーンアップ
概要
| 項目 | 内容 |
|---|---|
| 案件ID | MAS-097 |
| カテゴリ | コード品質 |
| Phase | P1 |
| 優先度 | ★★★ |
| 所要時間 | 15分 |
| 対象ファイル | 400_domain/401_bat_rpa.js, 400_domain/403_subledger_engine.js |
問題
TypeScript診断(VS Code PROBLEMS パネル)で以下の未使用変数が検出されている。コードの可読性を低下させ、将来のリファクタリング時に混乱を招く。
検出済みの未使用変数
| ファイル | 変数名 | 行番号 | 状況 |
|---|---|---|---|
401_bat_rpa.js | iRefType | L122 | buildOrdMap_ 内で宣言されるが参照されない |
401_bat_rpa.js | finalBilledYm | L467 | generateSaasInvoices 内で宣言・代入されるが参照されない |
401_bat_rpa.js | targetMonthEnd | L1122 | generateCapexInvoices 内で宣言されるが参照されない |
401_bat_rpa.js | hasNewDraft | L1226 | 宣言されるが参照されない |
401_bat_rpa.js | lastRepayDate | L1378 | 宣言・代入されるが参照されない |
401_bat_rpa.js | targetOverride | L1681 | 関数パラメータだが使用されていない |
403_subledger_engine.js | settleYm | L248 | processInvoiceApprovals 内で宣言されるが参照されない |
403_subledger_engine.js | appType | L251 | 同上 |
修正方針
- 各変数の宣言行を削除する
- 関数パラメータ(
targetOverride)の場合は、呼び出し側のインターフェースを壊さないため_targetOverrideにリネームして明示的に未使用であることを示す - 修正後、
npm run push:dev→ GAS動作確認
関連ドキュメント
| 仕様書 | 関連箇所 |
|---|---|
| 4.3.1 HC(人件費) | 401_bat_rpa.js の HC RPA 関数内の未使用変数 |
| 4.3.2 SaaS・サブスク | 401_bat_rpa.js の SaaS RPA 関数内の finalBilledYm |
| 4.3.3 CAPEX(設備投資・借入) | 401_bat_rpa.js の CAPEX RPA 関数内の targetMonthEnd, hasNewDraft, lastRepayDate |
| 4.4.1 Action A / Action B | 403_subledger_engine.js の settleYm, appType |
| 4.3.7 ORD自動紐づけ | 401_bat_rpa.js の buildOrdMap_ 内の iRefType |
人間が検討すべき事項
なし(機械的な削除。即対応可)
実装プロンプト(Claude Code 用)
以下のプロンプトを Claude Code に入力して実装を実行する。
S-25: 未使用変数の一括クリーンアップ
背景: TypeScript 診断で検出された未使用変数8件を削除する。コードの動作は一切変わらない機械的な削除作業。
修正内容:
1. 401_bat_rpa.js — 6件
- L114 var iRefType = h.indexOf('参照元区分'); → 行削除
- L428 let finalBilledYm = ...; → 行削除(L505 の代入行も削除)
- L1083 const targetMonthEnd = ...; → 行削除
- L1187 let hasNewDraft = false; → 行削除(L1204, 1220, 1237, 1280, 1313, 1331, 1381, 1397 の hasNewDraft = true; 代入行も全て削除)
- L1339 var lastRepayDate = null; → 行削除(L1400 の代入行も削除)
- targetOverride パラメータ → _targetOverride にリネーム(呼び出し側のインターフェースを壊さないため)
2. 403_subledger_engine.js — 2件
- L250 const settleYm = Utils.parseDateToYm(settleDate); → 行削除
- L253 const appType = String(row[invIdx['申請種別']] || '').trim(); → 行削除
3. 注意点:
- 401_bat_rpa.js L689 の targetMonthEnd は HC RPA で使用されているので削除しない。削除するのは L1083(CAPEX)のみ
- hasNewDraft は宣言 + 代入8箇所を全て削除する
4. 手順:
- chore/s25-unused-vars ブランチを作成
- コード修正
- npm run push:dev → dev で全テスト実行(T1〜T8 全 PASS 確認)
- git push → PR → main マージ
検証: 機能変更なしのため、既存テスト(T1〜T8)が全て PASS すれば OK。
作成者: Claude Code
拡張思考(ultrathink)の使用状況
| フェーズ | ultrathink | 備考 |
|---|---|---|
| プロンプト作成 | なし | 通常の推論で作成 |
| 実装 | なし | 機械的な削除作業のため通常の推論で実行 |
変更履歴
| 日付 | 変更内容 |
|---|---|
| 2026-04-14 10:33 | 初版作成 |
| 2026-04-14 | 実装プロンプト(Claude Code 用)を追加 |