Communityライティング&編集github.com

SyntaxFear/bog-banking-skill

Bank of Georgia(ビジネスオンライン)口座の読み取り専用バンキングスキル。Claude Code、Codex、SKILL.md互換のAIエージェントに対応。残高確認、明細照会、支出分析、為替レートの取得をチャットで行えます。

bog-banking-skill とは?

BOG Banking Skillは、Bank of GeorgiaのBusiness OnlineアカウントをAIコーディングエージェント(Claude Code、Codex、その他SKILL.md互換エージェント)から安全に参照・分析するためのスキルです。バンドルされたPythonスクリプト(scripts/bog.py)がBOG APIからJSONデータを取得し、AIエージェントがそれを解析、分類、集計して自然言語でレポートします。このスキルは完全に読み取り専用であり、送金や取引承認などの更新操作は一切行いません。初回セットアップ時はユーザーに対話形式で認証情報の入力を促し、Client IDとClient Secretを安全に保存します。各セッション開始時にwhoamiコマンドで認証状態を確認し、接続でき次第、残高照会、取引明細(期間指定可)、当日の入出金、公式為替レートの取得などのコマンドを利用できます。複数の口座(IBAN)と通貨を管理でき、異なる通貨間の金額を自動的に集計することはありません。モックモードも搭載しており、実際の口座アクセス前にサンプルデータで機能を試すことができます。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add SyntaxFear/bog-banking-skill

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

BOG Banking Skill(読み取り専用)

ユーザーがBank of GeorgiaのBusiness Onlineアカウントを会話を通じて理解・管理できるように支援します。バンドルされたツール(scripts/bog.py)がデータアクセスを行いJSONを出力します。あなたは分析(分類、集計、突合、異常値の指摘)を行います。SKILL.md互換のエージェント(Claude Code、Codexなど)で動作します。

厳格なルール

  1. 常に読み取り専用。 ここに記載されたbog.pyコマンドのみを実行してください。支払い、送金、書類への署名、または書き込みエンドポイントの呼び出しは絶対に行わないでください。そのような操作はありません。資金移動を依頼された場合は、このスキルは読み取り専用であり、ユーザー自身がBOGアプリで行う必要があると伝えてください(準備の手伝いは可能です)。
  2. 金融データは慎重に扱い、求められない限り生のテーブルをそのまま表示するのではなく要約してください。
  3. 認証情報を尋ねるときは、Client Secretを返信に絶対に表示せず、印刷もしないでください。ツールはローカルに保存します。

ツールの実行

python3 scripts/bog.py <コマンド> [オプション]

実行ごとに1つのJSONオブジェクト(command、mode(live/mock)、ok、dataまたはerror+message)が出力されます。それを解析し、平易な言葉で回答してください。

セッション開始時: 最初にステータスを確認

データが必要な操作の前に、以下を実行してください:

python3 scripts/bog.py whoami
  • ok: true かつ data.accounts_configured > 0 → 完全に設定済み。ユーザーのリクエストに直接進んでください。認証情報や既に保存されているIBANを再度尋ねないでください。
  • ok: true だが accounts_configured が 0 → キーは動作するが口座未登録 → オンボーディングのステップ6(IBAN追加)を実行してください。
  • error: "no_keys" → 新規ユーザー → 下記の初回セットアップを実行してください。
  • error: "invalid_credentials" → キーが拒否された → 下記のステップ5を参照。

初回セットアップ(オンボーディング)— ユーザーに一度だけ案内

温かい態度で、段階的に進めてください。完全なクリック手順(正確なBOG画面とリンク付き)は reference/getting-credentials.md にあります。自分の言葉で説明し、ユーザーに以下のリンクを伝えてください。

ステップ1 — 説明と安心感の提供。 このスキルは読み取り専用(資金を移動できません)であり、Bank of GeorgiaからClient IDとClient Secretの2つが必要であることを伝えます。

ステップ2 — ログイン。 Business Onlineの認証情報でhttps://bonline.bog.ge/ にログインするよう依頼してください。

ステップ3 — APIキーの作成。 https://bonline.bog.ge/admin/api を開き、Add newをクリックするよう指示します。以下を設定:

  • Integration type — Client Credentials Flow(Client ID + Client Secretで自動認証、ユーザー名やパスワード不要のタイプ)を選択。
  • API client name — 任意の名前(例:インターネットバンキングのユーザー名、またはBanking Assistant)。
  • ワンタイムコード(OTP) で確認。

ステップ4 — キーのコピー。 BOGがClient IDとClient Secretを表示します(画面によってはPublic Key / Secret Keyと表記される場合があります。同じ値です)。ユーザーに両方を貼り付けてもらい、保存します。秘密情報がコマンドラインに残らないよう、JSONをstdinからパイプで渡します:

python3 scripts/bog.py save-credentials <<'JSON'
{"client_id":"<Client ID>","client_secret":"<Client Secret>"}
JSON

Client Secretを絶対に表示しないでください。

ステップ5 — ログイン確認。 再度whoamiを実行します。

  • ok: true → キーが動作。ステップ6に進みます。
  • error: "invalid_credentials" → キーが間違っているか、ユーザーのBOGビジネスバンカーによってAPIアクセスがまだ有効化されていない可能性があります。両方の可能性を伝え、再入力のオプションを提供します(必要に応じて先に消去:python3 scripts/bog.py forget-credentials)。

ステップ6 — 最初の口座を追加。 1つの口座IBAN(例:GE..BG...)を尋ねます。これは明細書やBOGアプリに記載されており、秘密ではありません。通貨は尋ねないでください。その後:

python3 scripts/bog.py add-account --iban <IBAN>
python3 scripts/bog.py discover --account <IBAN>

discoverはそのIBANが保有する通貨(GEL/USD/EUR/GBP)を自動検出します。

ステップ7 — 最初のライブ結果。 balanceを実行し、見やすく表示します(結果の表示を参照)。設定完了を祝福し、別の口座を追加するかどうかを尋ね、元の質問に答えます。

キーの準備ができる前にデモを試したいですか? python3 scripts/bog.py --mock balance で銀行アクセスなしで現実的なサンプルデータを返します(常にサンプルデータであることを伝えてください)。

後での口座設定・管理

BOGは会社の口座一覧を取得できないため、ユーザーからIBANを収集します。一度に1つ、ユーザーが希望する数だけ追加できます。追加は常にマージ(既存のIBANは保持)です。IBANは永続化され、後続の呼び出しで再利用されます。一度保存されたIBANを再度尋ねたり、whoamiがokになった後に認証情報を再度尋ねたりしないでください。

  • 「別の口座GE..を追加」→ add-account --iban <IBAN> その後 discover --account <IBAN>(さらに追加するか尋ねる)
  • 「口座GE..を削除/忘れる」→ remove-account --iban <IBAN>(ユーザーが明示的に依頼した場合のみ)
  • 「どの口座がありますか?」→ accounts

読み取り専用コマンド

コマンド戻り値
whoami認証情報が存在し動作するか
add-account --iban GE.. [--currency GEL]IBANを追加(マージされ、削除されるまで保持)
remove-account --iban GE.. [--currency GEL]IBANを削除(または1通貨のみ)
discover [--account IBAN] [--currencies GEL,USD]保存されたIBANの通貨を調査し保存
accounts保存されたIBANとその通貨
balance [--account IBAN] [--currency GEL]利用可能残高 + 現在残高
statement [--account IBAN] [--currency GEL] [--from YYYY-MM-DD] [--to YYYY-MM-DD]期間の取引(自動ページネーション)
today [--account IBAN] [--currency GEL]当日の日中活動
rates [--currency USD]NBG公式レート + BOG商業売買レート

デフォルト = すべて。 --account/--currencyを渡さない場合、コマンドは自動的に設定されたすべてのIBANとその保有通貨をカバーします(通貨を自動検出)。--accountや--currencyはユーザーが特定の要求をした場合のみ渡してください(「USD残高」「口座GE..123」)。これらのコマンドはリスト(IBAN+通貨ごとに1エントリ)を返します。エントリにはその口座が保有していない通貨に対するerrorが含まれる場合があります。その場合はスキップしてください。

集約する際は、異なる通貨の金額を決して合計しないでください。通貨ごとに別々に報告してください(例:GEL合計とUSD合計)。

例

  • 「残高は?」→ balance(全口座+全通貨)
  • 「USD残高は?」→ balance --currency USD
  • 「先月の取引」→ statement --from 2026-05-01 --to 2026-05-31
  • 「<仕入先>にいくら支払いましたか?」→ statementを実行し、自分でフィルタリング・集計。
  • 「何か異常は?」→ statementを実行し、重複、端数、新しい取引相手、予想外の高額をフラグ付け。
  • 「USDレートは?」→ rates --currency USD

モックモード

--mockを渡すか(またはBOG_MOCK=1を設定)、銀行アクセスなしで現実的なサンプルデータを返します。ユーザーの認証情報が準備できる前にスキルをデモするのに便利です。結果がサンプルデータである場合は常にユーザーに伝えてください。

結果の表示

  • 金額は桁区切りと小数点以下2桁でフォーマット(例:18,430.75 GEL)。
  • 答えで始め、次に短い内訳、グループ化の前提を述べます。
  • 突合の場合は、可能性のある重複、異常に高額な金額、新規/不明な取引相手、端数での支払いを明示的にフラグ付けします。

完全な認証情報の手順は reference/getting-credentials.md、基盤となるBOGエンドポイントについては reference/endpoints.md を参照してください。

関連スキル