CLAUDE LABEN
DESIGN — Claude Designが大型更新。デザインシステムの取り込み、キャンバスの直接編集、エクスポート形式の追加が入りましたCODE — Claude Designがローカルのコードベースを起点に動作し、生成した画面をClaude Codeへ受け渡して実装まで繋げられますFABLE — Mythosクラスの最新モデルFable 5が一般利用向けに調整され、Claude Code v2.1.170から使えるようになりましたFIX — ストリーム途中で接続が切れても部分応答を保持する改善が入り、長時間の自動処理でも応答が残りますSCROLL — フルスクリーン時のマウスホイール加速を無効化するwheelScrollAccelerationEnabled設定が追加されましたTIER — Claude DesignベータはPro・Max・Team・Enterpriseで利用できますDESIGN — Claude Designが大型更新。デザインシステムの取り込み、キャンバスの直接編集、エクスポート形式の追加が入りましたCODE — Claude Designがローカルのコードベースを起点に動作し、生成した画面をClaude Codeへ受け渡して実装まで繋げられますFABLE — Mythosクラスの最新モデルFable 5が一般利用向けに調整され、Claude Code v2.1.170から使えるようになりましたFIX — ストリーム途中で接続が切れても部分応答を保持する改善が入り、長時間の自動処理でも応答が残りますSCROLL — フルスクリーン時のマウスホイール加速を無効化するwheelScrollAccelerationEnabled設定が追加されましたTIER — Claude DesignベータはPro・Max・Team・Enterpriseで利用できます
記事一覧/Claude Code
Claude Code/2026-06-17上級

課金変更が直前で撤回された日 — 慌てて組み替えないための可逆なパイプライン設計

6月15日に発効するはずだった課金変更が、直前に撤回されました。前日まで「本日発効」とログに書いていた立場から、headless 工程を慌てて組み替えずに済んだ理由と、撤回・延期に耐える可逆なパイプライン設計を、動くコードとともに記録します。

Claude Code158headless11自動化56コスト管理9個人開発84

プレミアム記事

6月15日の朝、私は自分のメモを書き換えていました。前夜まで「本日発効」と記録していた課金変更が、直前になって撤回(保留)されたからです。

告知されていたのは、Agent SDK・headless の claude -p 実行・GitHub Actions・サードパーティ製エージェントを、サブスクリプションの上限とは別枠の月次クレジットへ移す、という変更でした。繰り越しなし、full API レート課金。私は App Store と Google Play でアプリを公開しながら個人開発を続けてきて、いまは4つのサイトを自動運用しています。そのうち headless 実行に依存している工程がいくつもあります。だから前の週から、コスト構造を測り直し、どの工程を別枠へ寄せるかを考えていました。

ところが当日、その前提そのものが消えました。これらの利用は引き続きサブスク上限内で扱われる、という公式の確認が出たのです。

おもしろいのは、このとき私の手元では、ほとんど何も書き換える必要がなかったことです。パイプラインのコードは1行も触っていません。今日は、なぜ慌てずに済んだのか、そして「告知された変更が直前で覆る」状況に耐える設計とは何かを、実際の構成とともに書き残しておきます。

「組み替えてから撤回」が一番もったいない

自動運用をしていると、こういう告知への反応は3通りに分かれます。ひとつは、告知どおりに先回りして組み替えてしまう。ふたつめは、何もせず発効後に慌てる。みっつめは、発効しても撤回されても、どちらでも同じコードが動くようにしておく。

先回りは一見すると勤勉に見えますが、撤回されたときに一番損をします。私自身、過去に別のサービスで「来月から API のエンドポイントが変わる」という告知を真に受けて切り替え、結局その変更が延期になり、新旧両対応のまま半年放置した経験があります。先回りした分のコードは、撤回されると「動くのに意味のない複雑性」になって残るのです。

今回の課金変更で私が決めていたのは、発効を確認するまで、パイプライン本体のロジックは触らないということでした。代わりに、発効しても撤回されても切り替えられる「つまみ」を1つだけ用意しておく。これが可逆な設計の核心です。

課金モードを1箇所のリゾルバに閉じ込める

まず、「いま自分のパイプラインがどの課金前提で動いているか」を表す状態を、コードのあちこちに散らさず、1つのリゾルバに閉じ込めます。環境変数を読むのはこのファイルだけ、という約束にします。

// src/ops/billing-mode.ts
// 課金前提を表す状態。これ以外の場所で環境変数を直接読まない。
export type BillingMode = "subscription" | "metered_credits";
 
export interface BillingPolicy {
  mode: BillingMode;
  // headless 工程を実行してよいか(クレジット枯渇時は false にできる)
  headlessAllowed: boolean;
  // 1日に許容する headless 実行回数の上限(pacing 用)
  dailyHeadlessBudget: number;
}
 
export function resolveBillingPolicy(env = process.env): BillingPolicy {
  // 既定はサブスク前提。発効が確認できたら BILLING_MODE=metered_credits を1行入れるだけ。
  const mode: BillingMode =
    env.BILLING_MODE === "metered_credits" ? "metered_credits" : "subscription";
 
  if (mode === "metered_credits") {
    return {
      mode,
      headlessAllowed: env.HEADLESS_DISABLED !== "1",
      // 別枠クレジットは繰り越しがないので、日次でならして使う
      dailyHeadlessBudget: Number(env.DAILY_HEADLESS_BUDGET ?? 12),
    };
  }
 
  return {
    mode,
    headlessAllowed: env.HEADLESS_DISABLED !== "1",
    // サブスク上限内なら回数の意味が薄いので、実質無制限に近い値
    dailyHeadlessBudget: Number(env.DAILY_HEADLESS_BUDGET ?? 9999),
  };
}

ここが可逆性の要です。撤回されたら BILLING_MODE を消す(または subscription に戻す)だけ。発効が確認できたら metered_credits を入れるだけ。判断の結果が反映される場所が、たった1箇所に集約されているので、どちらに転んでも差分は最小で済みます。

なぜ boolean を直接持たずに mode という列挙にしたかというと、将来「第3の課金形態」が出たときに分岐を1つ足すだけで拡張できるからです。真偽値だと二択に固定されてしまい、撤回どころか「別の変更」が来たときに作り直しになります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
課金モードを1箇所のリゾルバに閉じ込め、撤回・延期があっても1行で切り替えられるようにする実装
headless 呼び出しをモード非依存にして、サブスク枠と月次クレジットのどちらでも同じコードで走らせる構成
「組み替えるか据え置くか」を感情でなく基準で決めるための判断表と、可逆運用の3原則
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-06-16
課金変更2日目 — headless 工程の実コストが事前見積もりからどれだけズレたか
6月15日の課金変更で headless 実行が月次クレジットに切り替わりました。発効2日目に工程別の実コストを集計したところ、ある工程だけ見積もりの約2倍。計測の仕組みと、1工程をサブスク枠へ戻した判断を記録します。
Claude Code2026-06-17
予告された課金変更が直前で撤回されたとき、設定を一行も書き換えずに済ませる
発効するはずだった課金変更が当日に撤回されました。予告・発効・撤回のどの段階でもコードを触らずに済ませるため、プラットフォームの挙動を一箇所のフラグに集約し、実測から月額差分を出す設計を記録します。
Claude Code2026-06-13
6/15 の Claude Code 課金変更で、headless 実行はどう変わるのか
2026年6月15日から Agent SDK・headless の claude -p・GitHub Actions・サードパーティエージェントが月次クレジットへ移行します。自動化を回している個人開発者が、どの工程を残し、どの工程を見直すかを整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →