コンテンツにスキップ

HANDOFF v1.3: Lightroom Classic 環境設定の自動実装

Chat Claude → Code Claude
作成日:2026-05-25
前のHANDOFFHANDOFF_lightroom_preset_v1.2_2026-05-25.md(v1.2実装・完了)
プロジェクト:写真集『MARKET / Plus-Sum』(仮)


1. 背景

Plus-Sum v1 プリセット集(9ファイル + Lens Corrections + お気に入り)は v1.0 + v1.2 で確定済み。本HANDOFFは Lightroom Classic アプリ全体の運用環境を整備するタスク。

工藤拓真が出先のためモニター情報未取得 → Soft Proofing 関連は本HANDOFFから除外。


2. ゴール

  1. Preferences 設定の自動化(XMP自動書込・Cache拡張・ヒストグラム警告)
  2. メタデータプリセット「Plus-Sum_Metadata」生成
  3. 書き出しプリセット2種(写真集印刷用・SNS共有用)生成
  4. Catalog DB へキーワード追加(MARKET / Plus-Sum候補 / シーン別 / 機材別)
  5. スマートコレクション「MARKET_Plus-Sum_候補_2026」をCatalog DBに作成
  6. レーティング運用ルールを README に追記
  7. Catalog バックアップ頻度を「Once a week」に設定
  8. 完了レポートを ~/working/_claude_workspace_global/reports/MARKET_lightroom_environment_setup_2026-05-25.md に保存

3. 前提条件・制約

3.1 必須:Lightroom Classic 完全終了

Catalog DB(lrcat)と plist がロックされるため、Lightroom Classic は起動していないこと。Code Claude は起動中なら作業中止して工藤さんに通知。

3.2 バックアップ最優先

~/working/_claude_workspace_global/backups/lr-environment-2026-05-25/ に以下を退避:

  • ~/Library/Preferences/com.adobe.LightroomClassicCC7.plist(Preferences)
  • 主要な lrcat ファイル全体(Lightroom Catalog-v13-3.lrcat の最新版)
  • 既存のメタデータプリセット全体(~/Library/Application Support/Adobe/Lightroom/Metadata Presets/
  • 既存の書き出しプリセット全体(~/Library/Application Support/Adobe/Lightroom/Export Presets/User Presets/

バックアップ完了確認後にのみ次フェーズへ進む。

3.3 既存物との衝突回避

工藤さんは既存のメタデータプリセット・書き出しプリセット・キーワードリストを持っている可能性が高い。

  • 名前衝突:「Plus-Sum_」プレフィックスで新規作成、既存と被らないように
  • 既存削除禁止:既存プリセット・キーワード・コレクションは一切削除しない
  • 既存スキャン:既存物の一覧を完了レポートに記載

4. 実行手順

Phase 1:環境調査・バックアップ

# Lightroom 起動チェック
pgrep -fl "Lightroom Classic" && echo "起動中:作業中止" && exit 1

# バックアップディレクトリ作成
mkdir -p ~/working/_claude_workspace_global/backups/lr-environment-2026-05-25

# 主要ファイルをバックアップ
cp -p ~/Library/Preferences/com.adobe.LightroomClassicCC7.plist \
  ~/working/_claude_workspace_global/backups/lr-environment-2026-05-25/

# Catalog ファイルの場所を特定(環境依存)
find ~/Pictures -name "*.lrcat" -type f 2>/dev/null | head -5

# 最新Catalogをバックアップ(容量大きいので別ディレクトリにシンボリックリンクでも可)
LATEST_LRCAT=$(find ~/Pictures -name "*.lrcat" -type f -exec stat -f "%m %N" {} \; 2>/dev/null | sort -rn | head -1 | cut -d' ' -f2-)
cp -p "$LATEST_LRCAT" ~/working/_claude_workspace_global/backups/lr-environment-2026-05-25/

# 既存プリセットフォルダもバックアップ(軽量)
cp -rp ~/Library/Application\ Support/Adobe/Lightroom/Metadata\ Presets \
  ~/working/_claude_workspace_global/backups/lr-environment-2026-05-25/Metadata_Presets_backup 2>/dev/null

cp -rp ~/Library/Application\ Support/Adobe/Lightroom/Export\ Presets \
  ~/working/_claude_workspace_global/backups/lr-environment-2026-05-25/Export_Presets_backup 2>/dev/null

Phase 2:Preferences 設定(plist 編集)

com.adobe.LightroomClassicCC7.plist を defaults コマンドで編集:

# Camera Raw Cache を 100GB に設定
defaults write com.adobe.LightroomClassicCC7 \
  "AgPrefs.maximumDevelopMRUCacheSize" -int 107374182400

# ヒストグラム警告を両方ON
defaults write com.adobe.LightroomClassicCC7 \
  "AgDevelopHistogram.showHighlightClippingIndicator" -bool true
defaults write com.adobe.LightroomClassicCC7 \
  "AgDevelopHistogram.showShadowClippingIndicator" -bool true

# Catalog バックアップ頻度を「Once a week」に
defaults write com.adobe.LightroomClassicCC7 \
  "AgPrefs.backupCatalogFrequency" -string "weekly"

注意:Adobe の plist キー名は バージョンによって変動する可能性。Code Claude は事前に既存plistを defaults read で確認してから書き込み。実際のキー名が違う場合は、ログに記録してスキップ。

Phase 3:Catalog Settings(XMP自動書き込み)

これは Catalog 内部の SQLite で管理される設定。

Lightroom Classic の Catalog Settings の「Automatically write changes into XMP」は、Adobe_namedIdentityPlate 系のテーブルではなく、SystemSetting系のテーブルに格納される。

import sqlite3
import shutil

# Catalog バックアップ
catalog_path = "/Users/kudotakuma/Pictures/Lightroom/Lightroom Catalog-v13-3.lrcat"  # 要確認
backup_path = f"{catalog_path}.backup-2026-05-25"
shutil.copy2(catalog_path, backup_path)

# DB接続
conn = sqlite3.connect(catalog_path)
cur = conn.cursor()

# AgPrefs テーブルから現状確認
cur.execute("SELECT value FROM AgPrefs WHERE id = 'Adobe.lightroom.catalog.autoXmpUpdate'")
current = cur.fetchone()
print(f"現状: {current}")

# 自動XMP書き込みをON(値の正確な形式は調査が必要)
# Lightroom のスキーマは複雑なので、安全のため Code Claude は実装前に
# Catalog DB のスキーマを調査してから書き込む

conn.close()

重要:Catalog DB の正確なスキーマは Lightroom バージョンによって変動。Code Claude は 書き込み前に該当テーブル・カラムの存在を確認し、不明な場合は README に手動手順を記載してスキップする。

Phase 4:メタデータプリセット作成

~/Library/Application Support/Adobe/Lightroom/Metadata Presets/ に以下のファイルを作成:

ファイル名Plus-Sum_Metadata.lrtemplate

s = {
    id = "PLUS-SUM-METADATA-2026",
    internalName = "Plus-Sum_Metadata",
    title = "Plus-Sum_Metadata",
    type = "MetadataPreset",
    value = {
        creator = "工藤拓真 / Takuma Kudo",
        creatorJobTitle = "Photographer",
        creatorWebsite = "ichiba.market",
        copyright = "© 2026 Takuma Kudo. All rights reserved.",
        copyrightState = "copyrighted",
        rightsUsageTerms = "All rights reserved. No reproduction without written permission.",
    },
    version = 0,
}

注意:実際の .lrtemplate フォーマットは Lua の Lightroom 内部API依存。Code Claude は既存のメタデータプリセットファイル(あれば)を雛形として参照することを推奨。

Phase 5:書き出しプリセット作成

~/Library/Application Support/Adobe/Lightroom/Export Presets/User Presets/ に以下を作成:

5.1 Plus-Sum_写真集印刷用.lrtemplate

s = {
    id = "PLUS-SUM-EXPORT-PRINT-2026",
    internalName = "Plus-Sum_写真集印刷用",
    title = "Plus-Sum_写真集印刷用",
    type = "ExportPreset",
    value = {
        LR_format = "TIFF",
        LR_export_bitDepth = 16,
        LR_export_colorSpace = "AdobeRGB",
        LR_size_resolution = 350,
        LR_size_resolutionUnits = "inch",
        LR_export_useSubfolder = false,
        LR_outputSharpeningMedia = "matte",
        LR_outputSharpeningLevel = 2,  -- Standard
        LR_metadata_keywordOptions = "lightroomHierarchical",
        LR_includeFaceTagsAsKeywords = false,
        LR_metadata_writeHierarchicalKeywords = false,
        LR_minimizeEmbeddedMetadata = false,
    },
    version = 0,
}

5.2 Plus-Sum_SNS共有用.lrtemplate

s = {
    id = "PLUS-SUM-EXPORT-SNS-2026",
    internalName = "Plus-Sum_SNS共有用",
    title = "Plus-Sum_SNS共有用",
    type = "ExportPreset",
    value = {
        LR_format = "JPEG",
        LR_jpeg_quality = 0.85,
        LR_export_colorSpace = "sRGB",
        LR_size_resize = true,
        LR_size_maxDimension = 2048,
        LR_size_resolution = 144,
        LR_size_resolutionUnits = "inch",
        LR_outputSharpeningMedia = "screen",
        LR_outputSharpeningLevel = 2,  -- Standard
        LR_minimizeEmbeddedMetadata = true,
        LR_removeLocationMetadata = true,
        LR_metadata_keywordOptions = "lightroom",
    },
    version = 0,
}

注意:lrtemplate フォーマットの正確な仕様は Lightroom バージョン依存。Code Claude は既存の書き出しプリセットファイルを雛形として読み込み、上記の値を上書きする方が安全。

Phase 6:Catalog DB へキーワード追加

Catalog DB の AgLibraryKeyword テーブルに以下を SQL で挿入:

# Lightroom 起動中チェック後、Catalog DB に接続
conn = sqlite3.connect(catalog_path)
cur = conn.cursor()

# 既存キーワード確認
cur.execute("SELECT id_local, name, parent FROM AgLibraryKeyword WHERE name IN ('MARKET', 'Plus-Sum候補', 'Plus-Sum-Scene', 'Plus-Sum-Camera')")
existing = cur.fetchall()
print(f"既存キーワード: {existing}")

# AgLibraryKeyword のスキーマ確認
cur.execute("PRAGMA table_info(AgLibraryKeyword)")
columns = cur.fetchall()
print(f"AgLibraryKeyword スキーマ: {columns}")

追加すべきキーワードのツリー構造

MARKET(親)
├── Plus-Sum候補(子)
├── Plus-Sum確定(子)
└── ボツ(子)

Plus-Sum-Scene(親)
├── 朝コーヒー(子)
├── 昼カフェ街中(子)
├── 市場(子)
├── 夜机上(子)
└── 濃密モード(子)

Plus-Sum-Camera(親)
├── M10-R_APO35(子)
├── M10-R_APO50(子)
├── M10-R_Nokton40(子)
├── M10-R_Noctilux50(子)
├── Q3-43(子)
├── GR4(子)
└── α7V(子)

注意:AgLibraryKeyword のスキーマには id_local(自動採番)/ name / parent(親キーワードのid_local)/ genealogy(ツリー構造の文字列)/ keywordType("keyword")等が含まれる。挿入時はトランザクション内で実行。

Phase 7:スマートコレクション作成

Catalog DB の AgLibraryCollection テーブルに「MARKET_Plus-Sum_候補_2026」を追加:

# AgLibraryCollection のスキーマ確認
cur.execute("PRAGMA table_info(AgLibraryCollection)")
print(cur.fetchall())

# AgLibrarySmartCollection 関連テーブルの確認
cur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%Collection%'")
print(cur.fetchall())

スマートコレクションの条件

名前: MARKET_Plus-Sum_候補_2026
条件:
  - Rating: ≥ 3
  - Keywords contains: Plus-Sum候補
  - Capture Date: in range 2026/01/01 - 2026/12/31

スマートコレクションの定義は Catalog DB の AgLibraryCollection.smartObject カラム(XML形式)に格納される。XMLの正確なスキーマは要調査。

フォールバック:もし XML スキーマが複雑すぎて自動化困難なら、Lightroom 起動後の手動手順を README に詳細記載してスキップ。

Phase 8:レーティング運用ルールを README に追記

Plus-Sum v1 - 02シーン別ベース/README_運用ガイド.md に以下を追記:

## 9. レーティング・フラグ運用ルール(v1.3 追加)

### 星評価(Rating)の意味づけ

| 星 | 意味 | スマートコレクション対象 |
|---|---|---|
| 0(未評価) | デフォルト | × |
| ★1 | 残す価値あり(ボツ予備) | × |
| ★2 | 保留 | × |
| ★3 | **Plus-Sum候補** | ✅ |
| ★4 | 強い候補(写真集確定候補) | ✅ |
| ★5 | 確定(写真集ダミーに必ず入る) | ✅ |

### フラグ
- **Pick(白フラグ)**:今日のセレクト対象
- **Reject(X)**:廃棄候補

### キーワード運用
- 撮影シーン:Plus-Sum-Scene の子キーワードを必ず1つ付ける
- 使用機材:Plus-Sum-Camera の子キーワードを必ず1つ付ける
- 写真集候補化:MARKET > Plus-Sum候補 のキーワードを付ける

### スマートコレクション「MARKET_Plus-Sum_候補_2026」
- 自動条件:★3以上 AND Plus-Sum候補キーワード AND 2026年撮影
- これに入った写真が写真集ダミー編集の対象

### メタデータプリセット「Plus-Sum_Metadata」
- Import 時に自動適用推奨(著作権・連絡先情報)

### 書き出しプリセット
- **Plus-Sum_写真集印刷用**:TIFF 16-bit / AdobeRGB / 350dpi / Matte Paper Sharpening
- **Plus-Sum_SNS共有用**:JPEG 85% / sRGB / Long Edge 2048px / Screen Sharpening

Phase 9:完了レポート生成

~/working/_claude_workspace_global/reports/MARKET_lightroom_environment_setup_2026-05-25.md に:

# Plus-Sum Lightroom 環境設定完了レポート

## 実装結果サマリー
- バックアップ:✅
- Preferences 設定:✅ or ⚠️ (詳細)
- メタデータプリセット:✅ or ⚠️
- 書き出しプリセット:✅ or ⚠️
- Catalog DB キーワード追加:✅ or ⚠️
- スマートコレクション:✅ or ⚠️
- README v9 追記:✅

## 各 Phase の結果

### Phase 2: Preferences 設定
- Camera Raw Cache: 100GB に設定 ✅ or ⚠️(理由)
- ヒストグラム警告(白飛び・黒つぶれ): 両方ON ✅ or ⚠️
- Catalog バックアップ頻度: Weekly ✅ or ⚠️

### Phase 3: XMP 自動書き込み
- Catalog Settings での AutoXMP: ✅ or ⚠️
(成功した場合)自動的に XMP に書き込まれるように設定済み
(失敗した場合)手動手順を README §10 に記載

### Phase 4: メタデータプリセット
- Plus-Sum_Metadata: ✅ or ⚠️
- ファイルパス: ~/Library/Application Support/Adobe/Lightroom/Metadata Presets/Plus-Sum_Metadata.lrtemplate

### Phase 5: 書き出しプリセット
- Plus-Sum_写真集印刷用: ✅ or ⚠️
- Plus-Sum_SNS共有用: ✅ or ⚠️

### Phase 6: キーワード追加
- 親キーワード: MARKET / Plus-Sum-Scene / Plus-Sum-Camera を追加
- 子キーワード: 14個 を追加
- 既存キーワードとの衝突: なし or(衝突ありの場合詳細)

### Phase 7: スマートコレクション
- MARKET_Plus-Sum_候補_2026: ✅ or ⚠️

## Lightroom 起動時の確認チェックリスト

1. Library モジュール → Collections パネル → "MARKET_Plus-Sum_候補_2026" が存在
2. Library → Keyword List → "MARKET" / "Plus-Sum-Scene" / "Plus-Sum-Camera" のツリーが存在
3. Library → Metadata パネル → "Preset" ドロップダウンに "Plus-Sum_Metadata" が表示
4. File → Export → "User Presets" に "Plus-Sum_写真集印刷用" / "Plus-Sum_SNS共有用" が表示
5. Develop → Presets → "Favorites" に4プリセットが★マーク付き表示

## 工藤さんが手動でやるべき残りの作業(極小)

1. Develop パネルで Plus-Sum v1 フォルダ2つが表示されているか確認(1分)
2. 環境設定 → Presets → "Show Favorites" のチェック確認(30秒)

## 設定がスキップされた項目(フォールバック)

(自動化に失敗した項目がある場合、ここに詳細手動手順を記載)

5. エラー対応

Lightroom 起動中

作業中止。工藤さんに通知。

plist キー名がバージョン依存

defaults read で既存キーを確認してから書き込み。不明なキーはスキップして README に手動手順を記載。

Catalog DB スキーマ不明

書き込み前に PRAGMA table_info で構造確認。トランザクション内で実行、失敗時はロールバック。

lrtemplate フォーマット不明

既存ファイルがあれば雛形として読み込み、値だけ上書き。既存ファイルがない場合は最小限のフォーマットで作成し、README にLightroom 起動時の動作確認手順を記載。

既存プリセット名衝突

「Plus-Sum_」プレフィックスで衝突回避。それでも衝突したら接尾辞 "_v2" を追加。


6. 完了基準

以下が全て✅または ⚠️(理由明記)であれば完了:

  • Lightroom Classic 完全終了確認
  • バックアップ完了(plist + Catalog + プリセットフォルダ)
  • Preferences 設定(Cache / ヒストグラム / Backup頻度)
  • XMP 自動書き込み(または手動手順記載)
  • メタデータプリセット作成
  • 書き出しプリセット2種作成
  • キーワード追加(3親 + 14子 = 17個)
  • スマートコレクション作成(または手動手順記載)
  • README v9 追記
  • 完了レポート保存

末尾署名:Chat Claude(2026-05-25)作成。kudo-cowork-code-handoff-protocol v1.16 / kudo-shared-storage-protocol v1.3 §5.5 集中原則準拠。Lightroom Classic 環境設定の自動実装スコープ。Soft Proofing 関連は工藤さん帰宅後の手動対応とし、本HANDOFFのスコープ外。