v6.0.0 アップグレードガイド
1 チャンネル = 1 リポジトリで運用するための削除リリースです。このページは v6.0.0 公開後の追従手順です。タグが公開されるまでは実行せず、現在のバージョンを維持してください。
あなたのチャンネルへの影響
- 独立したチャンネルリポジトリを使っている場合、制作データの移動は不要です。実行対象は cwd または
CHANNEL_DIRで指定します。 - 複数チャンネルを
channels/<slug>/に同居させている場合、v6.0.0 へ更新する前に、旧版の export CLI で独立リポジトリへ戻してください。手順の要点は後述します。 - 共通の
--channel/CHANNELによるチャンネル切替は廃止します。独自スクリプトは対象リポジトリへcdするか、CHANNEL_DIRに絶対パスを渡してください。分析対象の--competitorは継続します。 - 旧構造専用の選択・import・状態表示・guard・export CLI は削除します。複数リポジトリの一覧・更新には
yt-channels list/yt-channels updateを使います。 - OAuth client の共有ルート探索は廃止します。
<channel>/auth/client_secrets.json、互換用の<channel>/automation/auth/client_secrets.json、linked worktree の main checkout のauth/client_secrets.jsonの順に探索します。CLIENT_SECRETS_DIRの明示指定、secret fallback、トークンとバックアップの扱いは変わりません。
SessionStart 自動追従と無効化
配布される settings の SessionStart hook は既定で更新確認を行います。main などのブランチ追従では、通常 checkout・デフォルトブランチ・追跡ファイルが clean・upstream ありの条件が揃うと yt-automation-update apply --commit --accept-hooks を実行します。更新差分は自動 commit されますが、push はしません。
tag pin は新しい版の通知のみ、SHA pin は対象外です。linked worktree、CI、dirty な作業ツリー、別セッションが追従中の場合は自動更新しません。local fix がある場合は上書きせず、対応方法を表示します。自動追従の失敗でセッション起動を止めません。
自動追従を無効にしたい場合は、Claude Code を起動するシェルで次を設定してください。継続して無効化する場合はシェルの設定へ保存します。
export YOUTUBE_AUTOMATION_DISABLE_SESSION_UPDATE=1
hook は起動プロセスの環境変数を読みます。この指定を .env に書くだけでは無効化されません。手動の yt-automation-update は引き続き使えます。
独立リポジトリへの戻し方(更新前)
export を含む v5.8.0 を使って、チャンネルごとに実施します。v6.0.0 では export CLI と専用の逆移行ページがなくなるため、この手順を更新前に完了してください。
-
対象チャンネルの制作・自動収集を停止し、
channels/<slug>/の追跡変更と未追跡ファイルを確認して必要な物を commit します。戻し先は旧リポジトリの外の、存在しないか空のディレクトリにします。 -
旧リポジトリの cwd で、以下を実行します。
uv run yt-channel-export <slug> <destination> --dry-run uv run yt-channel-export <slug> <destination>メディアとチャンネル配下の
auth/もコピーします。元データは変更しません。外部 symlink は拒否し、.envはコピーしません。元と先のファイル数・サイズおよび config 読込を検証します。共有ルートにだけ置いていた OAuth client は、安全な経路で戻し先のauth/へ用意してください。 -
コピー完了後は旧チャンネルを凍結し、制作と自動収集を再開しないようにします。registry は旧パスを同じ位置で戻し先へ置換します。書込だけ失敗した場合は戻し先が残るため、CLI が表示した内容で registry を修正し、コピーを繰り返さないでください。
-
戻し先で
git init -b mainし、export 分を初回 commit にします。元のgit ls-files -- channels/<slug>から接頭辞を除いた集合と、戻し先のgit ls-filesを比較します。差分が追加テンプレートの.gitignore/auth/client_secrets.template.jsonのみであること、秘密情報とメディアを stage していないことを確認します。旧 Git 履歴は引き継ぎません。 -
/setup --toolで bootstrap し、export 分とは別 commit にします。必要なチャンネル固有の指示・権限設定・文書だけ手で移します。cloud の資格情報と設定は自動移行されないため、利用するチャンネルで/wf-new --scheduleを設定し直します。 -
独立リポジトリを push し、
yt-doctor、/wf-status、yt-analytics --statusと dashboard の表示先を確認します。最初のチャンネルで planning → upload、公開後処理、analytics、metadata audit を一周し、移行に起因する失敗がないことを確かめてから残りを移します。 -
全チャンネルのコピー・push・動作確認と registry の独立パスへの置換が完了してから、旧リポジトリを archive します。旧ディレクトリを削除する場合はメディアのコピーとバックアップを確認してください。検証中の切り戻しは新側の変更を保全してから、registry の
.bakを確認して手で戻し、旧側の凍結を解除します。両側で制作しないでください。
実行手順(v6.0.0 公開後)
追跡ファイルを commit して clean にしてから、チャンネルリポジトリで実行します。local fix が検出されたら、差分を確認して解消してから進んでください。
tag pin
cd <your-channel-repo>
uv run yt-automation-update check
uv run yt-automation-update apply --tag v6.0.0 --commit --accept-hooks
main などのブランチ追従
cd <your-channel-repo>
uv run yt-automation-update check
uv run yt-automation-update apply --commit --accept-hooks
ブランチ追従は実行時点の最新 commit を取り込みます。v6.0.0 に固定する場合は tag pin を選んでください。SHA pin は自動更新されないため、pyproject.toml の参照を意図する tag または SHA に変更してから lock と配布資産を同期します。
--accept-hooks は配布 hook の反映を承認する指定です。手動確認したい場合は省略し、表示された差分と指示を確認してください。旧 guard hook の除去は settings 同期が行います。
追従後の確認
uv run yt-doctor --json
uv run yt-channel-status
uv run yt-skills diff
git status --short
git log -1 --oneline
診断と対象チャンネルが正しく、更新 commit の差分に問題がなければ git push します。registry を使う場合は uv run yt-channels list で独立リポジトリの一覧も確認します。
トラブルシューティング
- 旧チャンネル選択引数がエラーになる: 呼出元の
--channelを除き、対象リポジトリの cwd またはCHANNEL_DIRを使ってください。 - OAuth client が見つからない: OAuth セットアップ の探索順に沿ってチャンネルの
auth/を確認してください。トークンを削除して解決しようとしないでください。 - local fix がある:
yt-skills diffで確認し、必要な変更を保全してください。--force-syncは上書きするため、判断なしで追加しないでください。 - 更新途中で失敗した: 残った更新差分を確認し、CLI の復旧案内に従ってください。再実行の
--allow-dirty --commitは既存差分を commit 対象にしません。
関連: ADR-0029、ツールのセットアップ。