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/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 で按分する。端数処理ルール:
- 合計金額を4で割り、1単位を求める(円未満切り捨て)
- 按分:
- 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のプロジェクト名から種別を判定する:
| プロジェクト名に含まれる文字列 | 種別 | 番号サフィックス | 備考サフィックス |
|---|---|---|---|
| MedicalBase | MB | 2 | MB_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番目:
電子カルテの場合(番号: 1)
- 合算用備考:
Rサポート_Dクリ1&クレ1&イースト1_[{yymm}]_クラメソ_電カルAWS費用 - 按分先ごとの備考:
- 1番目:
Rサポート_Dクリ1_[{yymm}]_クラメソ_電カルAWS費用 - 2番目:
Rサポート_クレ1_[{yymm}]_クラメソ_電カルAWS費用 - 3番目:
Rサポート_イースト1_[{yymm}]_クラメソ_電カルAWS費用
- 1番目:
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月)