Skills

/expense-split

請求書PDFのURLからPDFをダウンロードし、合計金額を1:1:2で按分してTSV形式で出力する。

About

請求書PDFのURLからPDFをダウンロードし、合計金額を1:1:2で按分してTSV形式で出力する。

Category:Utility
Scope:universal

Usage

Use when user says "expense-split", "按分", "楽々精算", "経費按分", "請求書按分".

Install

Agent:
curl -sf /api/skills/expense-split/download | tar xz -C .claude/skills/

Download / Upload

ZIP でダウンロード

→ Claude.ai: Customize > Skills にアップロード

Source

Expense Split (経費按分)

請求書PDFから金額を読み取り、1:1:2の比率で按分してTSV出力します。

引数

  • $ARGUMENTS にPDFのダウンロードURLを受け取る

手順

1. PDFをダウンロード

まず curl -L でダウンロードを試みる。HTMLが返ってきた場合(認証が必要な場合)は、ブラウザ自動操作(Chrome MCP)でログイン済みセッションからダウンロードする。

curl -L -o /tmp/expense_invoice.pdf "$URL"
# HTMLが返ってきたらブラウザ経由でDL
file /tmp/expense_invoice.pdf
  • URLが指定されていない場合はユーザーに聞く
  • ダウンロード失敗時はエラーを伝えて終了

2. PDFから情報を読み取る

Read ツールでダウンロードしたPDFを読み取る。

以下の情報を抽出する:

  • 発行日: 「発行日」のキーワードに注目(例: 2026/03/04)
  • 合計金額(税込): 「合計」「請求金額」「ご請求額」「お支払い金額」「Total」に注目。税込金額を優先。複数候補がある場合は最も大きい合計金額を採用
  • 納品月: 発行日の前月を yyyymm 形式で算出(例: 発行日 2026/03/04 → 202602)

読み取った金額をユーザーに確認する: 「読み取った合計金額は ¥XX,XXX です。この金額で按分しますか?」

3. 按分計算

比率 1:1:2 で按分する。端数処理ルール:

  1. 合計金額を4で割り、1単位を求める(円未満切り捨て)
  2. 按分:
    • 2番目 = 1単位
    • 3番目 = 1単位 x 2
    • 1番目 = 合計金額 - 2番目 - 3番目(余りを吸収)

例: 合計 10,001円の場合

  • 1単位 = 2,500円(10,001 ÷ 4 = 2,500.25 → 切り捨て)
  • 2番目: 2,500円
  • 3番目: 5,000円
  • 1番目: 10,001 - 2,500 - 5,000 = 2,501円

4. プロジェクト種別を判定して備考を生成

PDFのプロジェクト名から種別を判定する:

プロジェクト名に含まれる文字列種別番号サフィックス備考サフィックス
MedicalBaseMB2MB_AWSインフラ利用費
電子カルテ / EMR / denshi電カル1電カルAWS費用

判定できない場合はユーザーに聞く。

納品月の年月を yymm 形式にして(例: 202602 → 2602)、以下のテンプレートで備考を生成:

MedicalBase の場合(番号: 2)

  • 合算用備考: Rサポート_Dクリ2&クレ2&イースト2_[{yymm}]_クラメソ_MB_AWSインフラ利用費
  • 按分先ごとの備考:
    • 1番目: Rサポート_Dクリ2_[{yymm}]_クラメソ_MB_AWSインフラ利用費
    • 2番目: Rサポート_クレ2_[{yymm}]_クラメソ_MB_AWSインフラ利用費
    • 3番目: Rサポート_イースト2_[{yymm}]_クラメソ_MB_AWSインフラ利用費

電子カルテの場合(番号: 1)

  • 合算用備考: Rサポート_Dクリ1&クレ1&イースト1_[{yymm}]_クラメソ_電カルAWS費用
  • 按分先ごとの備考:
    • 1番目: Rサポート_Dクリ1_[{yymm}]_クラメソ_電カルAWS費用
    • 2番目: Rサポート_クレ1_[{yymm}]_クラメソ_電カルAWS費用
    • 3番目: Rサポート_イースト1_[{yymm}]_クラメソ_電カルAWS費用

5. TSV形式で出力 & クリップボードにコピー

以下の形式でTSV出力する(例はMedicalBaseの場合):

日付	按分先	金額	備考	納品月
{発行日}	1	{1番目の金額}	Rサポート_Dクリ{N}_[{yymm}]_クラメソ_{サフィックス}	{yyyymm}
{発行日}	2	{2番目の金額}	Rサポート_クレ{N}_[{yymm}]_クラメソ_{サフィックス}	{yyyymm}
{発行日}	3	{3番目の金額}	Rサポート_イースト{N}_[{yymm}]_クラメソ_{サフィックス}	{yyyymm}

出力後、pbcopy でクリップボードにもコピーする。 合算用の備考も別途表示する。

6. PDFファイルパスも伝える

「PDFは {ダウンロード先パス} に保存されています。楽々精算にアップロードしてください。」

注意事項

  • 金額は必ずユーザーに確認してから按分する
  • 按分後の合計が元の金額と一致することを検算して表示する
  • 円未満の端数は切り捨て、余りは1番目に加算
  • 発行日の前月が納品月(年をまたぐ場合も考慮: 1月→前年12月)