コード開発を伴わず、マスタデータの追加・DDLスキーマの軽微な変更・スプレッドシート上の手作業で完了する案件を集約したページです。 追加開発案件(TODO_future.md)から切り出したもので、開発者でなくても対応可能な作業が中心です。

対応ステータス

ステータス意味
未着手まだ作業していない
完了対応済み(日付を記入)

マスタデータ追加

ID案件名対象シートステータス完了日作業内容備考
D-01新規科目: 194 開業費11_mst_account完了2026-04-14有効フラグ=TRUE, 主科目コード=194, 諸表区分=BS, 大分類=資産, 表示区分=繰延資産, 表示科目=開業費, 正式科目名=開業費, 固変区分=対象外, デフォルト税率=対象外, 科目名=開業費設立後〜営業開始の準備費用(名刺、広告、打合せ等)。元: MAS-112
D-02新規科目: 301 資本準備金11_mst_account完了2026-04-14有効フラグ=TRUE, 主科目コード=301, 諸表区分=BS, 大分類=資本, 表示区分=純資産, 表示科目=資本準備金, 正式科目名=資本準備金, 固変区分=対象外, デフォルト税率=対象外, 科目名=資本準備金出資金のうち資本金に組み入れなかった金額。元: MAS-112
D-03新規科目: 218 役員借入金11_mst_account完了2026-04-14有効フラグ=TRUE, 主科目コード=218, 諸表区分=BS, 大分類=負債, 表示区分=その他流動負債, 表示科目=役員借入金, 正式科目名=役員借入金, 固変区分=対象外, デフォルト税率=対象外, 科目名=役員借入金役員個人からの借入・立替金。元: MAS-112。※217は仮受消費税で使用済みのため218に変更
D-13新規科目: 615 創立費11_mst_account未着手有効フラグ=TRUE, 主科目コード=615, 諸表区分=PL, 大分類=費用, 表示区分=その他営業外費用, 表示科目=創立費, 正式科目名=創立費, 科目名=創立費, 固変区分=対象外, デフォルト税率=対象外, 説明=「会社設立時の費用(定款認証手数料・登録免許税・司法書士報酬・設立準備期間家賃等)。中小企業会計指針 §56 + 実務対応報告第19号で『支出時全額費用処理』が本則のため B/S 繰延資産化せず直接 P/L 営業外費用として計上する」元: RQ-037 Gemini 3 Pro Preview Deep Think 助言相談 (PR #471)D-01 の 194 開業費 (繰延資産・BS) とは別物。本件は設立年度大幅黒字想定のためパターン1 (支出時一括費用計上) を採用・繰延資産化を経ない直接費用化の処理。税務扱い: 法基通 8-1-2 で「損金経理 = 当期全額償却」扱い・別表四調整不要・別表十六(六) 添付省略が実務一般。関連 INV 起票: 申請種別 APL_EX (経費精算) または APL_AP / 決済手段 口座振込 / 摘要に内訳明細。MAS-024 BEP・MAS-058 健全性診断には影響しない (営業利益ベース)。MAS-067 マルチイヤーで Y0 のみ凹む経常利益として認識される (Y1 以降は影響消滅)。コード 615 は既存「614 雑損失」の次・「その他営業外費用」表示区分で並列配置
D-14役員個人所有資産 → 法人取得 (役員借入金経由) 標準パターン32_wrk_invoice (実取引時)ガイド (継続適用)手順: (1) 対象資産の時価評価 (車両=カーセンサー等の中古買取見積・PC=メーカー残存価額・冷蔵庫=同型中古相場) + 評価根拠の証跡保管 → (2) 取締役会承認 (会社法 356 条 利益相反取引・Solo CEO で取締役 1 名なら株主総会承認で代替可) + 議事録作成 → (3) 売買契約書作成 (個人・法人間・売買日・対価・支払方法明記) → (4) bizlp INV 起票: 申請種別=APL_AP (買掛・支払予定) / 取引先=役員個人 (例: 代表 山田太郎) / 科目名=対象資産科目 (車両=164 車両運搬具 / PC・冷蔵庫等=工具器具備品) / 決済手段=資産計上 (B/S 即時計上・CF 除外) / 発生日=売買契約締結日 → (5) 仕訳: (借) [対象資産科目] / (貸) 役員借入金 (218) → (6) 後日返済時: (借) 役員借入金 (218) / (貸) 普通預金 → (7) 減価償却 (法定耐用年数で償却・中古資産は経過年数に応じた短縮計算 = (法定耐用年数 - 経過年数) + 経過年数 × 0.2・最低 2 年)対象シーン: 創業前に発起人個人で購入した車両・PC・冷蔵庫等の資産を会社設立後に法人へ移管する場合の標準パターン。現物出資 (会社法 28 条 1 号) や財産引受 (会社法 28 条 2 号) は検査役調査の手間があるため Solo CEO では非推奨。本パターンは検査役調査不要・既存の 218 役員借入金 (D-03 で登録済) を経由するため bizlp 上で完結。証憑保管: 時価評価根拠 + 売買契約書 + 取締役会・株主総会議事録の 3 点セット。個人側の課税: 譲渡所得 (生活用動産は原則非課税・事業用資産は課税対象だが買取価格 ≦ 個人取得価額なら譲渡損で課税なし)。RQ-038 候補: 役員借入金の認定利息ガイドライン (無利息でも一定範囲は OK だが長期高額の場合は税務リスク)。関連科目: 164 車両運搬具 / 工具器具備品 / 218 役員借入金 (D-03) / 減価償却費・減価償却累計額。注意: 私的利用按分が必要な場合は走行距離ベース等で按分計算 (100% 業務利用なら不要)。本パターンは継続適用 (ガイド扱い・実取引が発生するたびに参照)

DDLスキーマの軽微な変更

ID案件名対象ステータス完了日作業内容備考
D-04科目マスタに「説明」列を追加101_sys_config.js MST_ACCT headers完了2026-04-14MST_ACCTのheaders配列の末尾に "説明" を追加。setupAllSchemas実行で反映。既存データの説明列は空欄→手動またはマイグレーションで入力。元: MAS-111。mst_account.md に全科目の説明文は記載済み
D-0532タブに決済日列を追加101_sys_config.js WRK_INVC headers完了2026-04-14WRK_INVCのheaders配列に "決済日_実績" を追加。33タブの決済日_実績を32タブに転記する仕組みはAction B等のコード改修が別途必要。元: MAS-077。DDL変更のみ先行可能、コード連動は別案件

スプレッドシート手作業

ID案件名対象シートステータス完了日作業内容備考
D-06科目マスタの説明列データ投入11_mst_account完了2026-04-14D-04でDDL追加後、mst_account.md の説明文を全科目にコピー(約90行)。MCP update_cells またはGAS一括投入スクリプトで対応可。D-04が前提
D-0732タブ既存レコードの決済日_実績を補完32_wrk_invoice未着手MAS-077(コード連動)実装完了により、今後の Action B 実行時は決済日_実績が自動転記される。しかし既に決済完了済みのレコードは決済日_実績が空欄のまま。33_wrk_bank の決済日_実績を参照し、32タブの該当INVに転記する。対象条件: 有効フラグ=TRUE、請求ステータス=決済完了、決済日_実績が空欄。データ元: 33_wrk_bank の消込対象請求ID(INV)でマッチし、決済日_実績を転記。複数STLがある場合は最新日付。MAS-077が前提。マイグレーションスクリプト(807番台)での対応を推奨

未使用列の整理(削除候補)

以下はDDLスキーマに定義されているが、GASコードのビジネスロジックから一切参照されていない列です。 DDL定義・バリデーション設定・プルダウン生成では使用されている場合がありますが、データ処理ロジック(RPA・仕訳エンジン・データマート等)からは未参照です。

判定基準:

  • 削除可: コードからもUI運用からも参照されておらず、削除しても影響なし
  • 保留(将来利用): 追加開発案件で使用予定がある、またはUI上で人間が参照している
  • 保留(UI用途): プルダウンや表示用に使われており、コードからの参照はないが運用上必要

削除可能な列

IDシート列名理由ステータス完了日
D-1015_mst_dict貸方科目マッピング定義のみで未実装。元々の設計意図が不明完了2026-04-14
D-1134_wrk_cardSTL税込金額_決済コードからは未参照だが、人間がマッチ結果を目視確認する際に使用保留(UI用途)
D-1235_wrk_receiptSTL税込金額_決済D-11と同様。人間が目視確認に使用保留(UI用途)

保留(将来利用予定)

IDシート列名将来利用案件備考
11_mst_account正式科目名表示科目と区別して正式名称を保持。税務申告(MAS-092)で使用見込み
11_mst_account固変区分MAS-024 (損益分岐点BEP算出)BEP計算で固定費/変動費の分類に必須
11_mst_accountデフォルト税率MAS-089 (消費税税抜方式)課税事業者移行時に消費税計算で使用
12_mst_partner取引先区分MAS-102 (全銀振込データ)取引先の分類(仕入先/販売先/金融機関等)
23_bud_subscription自動更新アラート契約更新日の通知機能で使用予定

保留(UI用途・人間が参照)

IDシート列名備考
14_mst_projectPJ小区分, PJ大区分, 社内外, 資産化, 顧客・取引先名, PJ区分, 資産化対象PJマスタの分類情報。コードからは未参照だがPM・経営者が分類参照用に使用
15_mst_dictカテゴリ, 設定コード, 表示名コード辞書の基本列。プルダウンの元データとして02_sys_dropdownから参照
16_wrk_master登録名称〜システム発番コード(9列)マスタ申請ワークフローのUI入力列。コードはID発番のみ使用
34_wrk_cardご利用者, カテゴリ, 決済区分, 今回回数, 国内/海外クレカ明細のCSV取込で貼り付けられる元データ列。経理が目視確認に使用

dev → prod 反映手順

データ整備(マスタ追加・DDLスキーマ変更等)を dev で検証した後、prod に反映する手順。

Phase 1 暫定運用: 手動反映

コードを伴わないデータ整備(D-01〜D-03 等のマスタ追加)は、dev で検証後に prod で同じ操作を手動で再実施する。

1. dev で作業・検証
   ├── マスタデータ追加(スプレッドシート手入力)
   ├── setupAllSchemas 実行(DDL変更がある場合)
   ├── RPA・マート更新で動作確認
   └── テストランナーで回帰テスト

2. prod に反映
   ├── npm run push:prod(コード変更がある場合)
   ├── prod スプレッドシートを開く(npm run open:prod)
   ├── マスタデータを手動で同じ内容を入力
   ├── setupAllSchemas 実行(DDL変更がある場合)
   └── 軽微な動作確認(RPA 1件実行等)

3. 確認チェックリスト
   □ dev と prod のヘッダー行が一致しているか
   □ 追加したマスタ行が正しく入力されているか
   □ RPA で新しいマスタを使った起票が正常に動くか

恒久対策: マイグレーションスクリプト(MAS-116)

データ整備の内容をコードとして記述し、dev/prod 両方で実行する方式。詳細は TODO_future.md MAS-116 を参照。

mas/800_ops/
  804_migration_d01_d03.js    ← D-01〜D-03: 科目マスタ3件追加
  805_migration_d04_d06.js    ← D-04/D-06: 科目マスタ説明列データ投入
  806_cleanup_empty_rows.js   ← 全シートの空行を物理削除

メリット:

  • Git で差分レビュー → コードレビューしてから prod 実行
  • 冪等性を担保(「既に存在したらスキップ」のチェック付き)
  • 実行ログで「何をいつ適用したか」が追跡可能

変更履歴

日付変更内容
2026-04-14 11:20初版作成。TODO_future.md の MAS-111, MAS-112 をデータ整備案件として切り出し
2026-04-14 11:35未使用列の調査結果を追加。31列中、削除可3件/将来利用5件/UI用途23件に分類
2026-04-14 22:30dev → prod 反映手順(Phase 1 暫定運用 + 恒久対策)を追加
2026-04-14マイグレーションスクリプト テンプレートを追加(MAS-116)

マイグレーションスクリプト テンプレート

新規マイグレーションスクリプトを作成する際のテンプレート。804_migration_d01_d03.js の構造をベースにした汎用パターン。

ファイル作成手順

  1. mas/800_ops/8XX_migration_dNN_dNN.js を作成(番号は807から)
  2. 以下のテンプレートをコピーしてカスタマイズ
  3. 101_sys_config.js の「🔧 マイグレーション」メニューに .addItem() を追加
  4. npm run push:dev → dev で実行・検証 → npm run push:prod → prod で実行

コードテンプレート

/**
 * =========================================================
 * 8XX_migration_dNN_dNN.js — (変更内容の要約)
 * =========================================================
 * D-NN: (案件の説明)
 * D-NN: (案件の説明)
 *
 * 冪等性: (どのようなチェックでスキップするか記載)
 * 手順: dev で実行・検証 → npm run push:prod → prod で実行
 */

function migrationDNNDNN() {
  var FUNC = 'migrationDNNDNN';

  // 1. 対象シートを取得
  var sheetName = Utils.getSheetNameByKey('SHEET_KEY');
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  if (!sheet) throw new Error(sheetName + ' シートが見つかりません');

  // 2. ヘッダーインデックス構築(列番号ハードコード禁止)
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  var keyCol = headers.indexOf('キー列名');
  if (keyCol < 0) throw new Error('「キー列名」列が見つかりません');

  // 3. 既存データを読み込み(冪等性チェック用)
  var lastRow = sheet.getLastRow();
  var existingKeys = [];
  if (lastRow > 1) {
    existingKeys = sheet.getRange(2, keyCol + 1, lastRow - 1, 1)
      .getValues()
      .map(function(r) { return r[0]; });
  }

  // 4. 変更データの定義
  var changes = [
    // 変更内容をここに定義
  ];

  // 5. 冪等性チェック付きで変更を適用
  var results = [];
  var addedCount = 0;
  var skippedCount = 0;

  for (var i = 0; i < changes.length; i++) {
    var item = changes[i];
    var key = item[0]; // 一意キー

    if (existingKeys.indexOf(key) >= 0) {
      results.push(key + ': SKIP (既に存在)');
      skippedCount++;
      continue;
    }

    // 列Bで最終行を判定(列Aのチェックボックス回避)
    var appendRow = sheet.getLastRow() + 1;
    sheet.getRange(appendRow, 1, 1, item.length).setValues([item]);
    results.push(key + ': ADDED');
    addedCount++;
  }

  // 6. 結果サマリーを表示
  var summary = 'D-NN〜D-NN (変更内容の要約)\n'
    + '追加: ' + addedCount + '件 / スキップ: ' + skippedCount + '件\n\n'
    + results.join('\n');

  Utils.logInfo(FUNC, summary);
  SpreadsheetApp.getUi().alert('マイグレーション完了', summary, SpreadsheetApp.getUi().ButtonSet.OK);
}

メニュー登録(101_sys_config.js)

onOpen_() 関数内の「🔧 マイグレーション」メニュー定義に .addItem() を追加する。

ui.createMenu('🔧 マイグレーション')
  .addItem('D-01〜D-03: 科目マスタ3件追加', 'migrationD01D03')
  .addItem('D-04/D-06: 科目マスタ説明列データ投入', 'migrationD04D06')
  .addSeparator()
  .addItem('全シートの空行を物理削除', 'cleanupEmptyRows')
  .addSeparator()
  .addItem('D-NN〜D-NN: (説明)', 'migrationDNNDNN')  // ← 追加
  .addToUi();

チェックリスト

新規マイグレーション作成時に確認する項目:

  • ファイル名が 8XX_migration_dNN_dNN.js の命名規則に従っている
  • 関数名がファイル名と対応している(migrationDNNDNN
  • 冪等性チェックが実装されている(2回実行しても安全)
  • Utils.logInfoSpreadsheetApp.getUi().alert の両方で結果を出力している
  • 「🔧 マイグレーション」メニューに登録した
  • dev 環境で実行・検証を完了した
  • CLAUDE.md のmas/800_ops/ファイル一覧にファイル名を追記した