getting-started について
旅行特典の利用を始めるためのスキルです。API 認証情報の設定状況を確認し、ローカルスクリプトでの安全な設定と、利用可能なサービスに応じたプロンプトを案内します。
主な機能
- 01環境別の認証情報確認
- 02優先度別の認証情報整理
- 03ローカルスクリプトでの安全な設定案内
- 04設定に応じたプロンプトの提案
活用シーン
- 01利用可能な旅行サービスの確認
- 02チャットに秘密情報を出さず認証情報を追加
- 03利用可能なサービスで旅行検索を試す
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ borski/ travel-hacking-toolkit --skill getting-startedインストール後、Claude Code で/getting-startedを入力して読み込まれたか確認します。
詳細
はじめにスキル
ユーザーがこのスキルを明示的に呼び出しました。すでに使えるもの、不足しているもの、実際に試すべきことを確認できるようサポートしてください。重要:**チャットで API キーの入力を求めてはいけません。**チャット入力欄にキーを貼り付けると、ターミナルのスクロールバック、ローカルの Claude Code セッションログ、Anthropic API ログに記録されます。このツールキットには、マスク入力でキーの入力を求め、チャットを経由せずにユーザーのシェル設定ファイルへ直接書き込むローカルスクリプトが付属しています。
ステップ 1:すでに設定されている項目を検出する
まず、Bash ツールの環境からユーザーのプラットフォームを検出してください。bash が利用可能な場合(macOS、Linux、WSL、Windows の Git Bash)は、bash 用の検出方法を使用してください。bash がないネイティブ Windows PowerShell の場合は、PowerShell 用の検出方法を使用してください。
値は表示せず、SET または MISSING のみを報告してください。
Bash / Zsh(macOS / Linux / WSL / Git Bash)
ループが bash と zsh の両方で動作するように、printenv を使用してください(Claude Code の bash ツールではどちらが使われる場合もあります)。
for var in SEATS_AERO_API_KEY DUFFEL_API_KEY_LIVE IGNAV_API_KEY AWARDWALLET_API_KEY AWARDWALLET_USER_ID SERPAPI_API_KEY RAPIDAPI_KEY LITEAPI_API_KEY TRIPADVISOR_API_KEY ENTUR_CLIENT_NAME RESROBOT_API_KEY REJSEPLANEN_API_KEY; do
if [ -n "$(printenv "$var")" ]; then echo "SET: $var"; else echo "MISSING: $var"; fi
done
PowerShell(ネイティブ Windows)
$keys = @('SEATS_AERO_API_KEY','DUFFEL_API_KEY_LIVE','IGNAV_API_KEY','AWARDWALLET_API_KEY','AWARDWALLET_USER_ID','SERPAPI_API_KEY','RAPIDAPI_KEY','LITEAPI_API_KEY','TRIPADVISOR_API_KEY','ENTUR_CLIENT_NAME','RESROBOT_API_KEY','REJSEPLANEN_API_KEY')
foreach ($k in $keys) {
$v = [Environment]::GetEnvironmentVariable($k)
if ([string]::IsNullOrEmpty($v)) { Write-Host "MISSING: $k" } else { Write-Host "SET: $k" }
}
結果をグループ分けしてください。
Tier 1(重要度が高く、不足の影響が最も大きい項目): SEATS_AERO_API_KEY、DUFFEL_API_KEY_LIVE、IGNAV_API_KEY、AWARDWALLET_API_KEY + AWARDWALLET_USER_ID
Tier 2(追加の情報源): SERPAPI_API_KEY、RAPIDAPI_API_KEY、LITEAPI_API_KEY、TRIPADVISOR_API_KEY
Tier 3(特定の用途): ENTUR_CLIENT_NAME、RESROBOT_API_KEY、REJSEPLANEN_API_KEY(スカンジナビアの交通機関のみ)
ステップ 2:現在の設定状況をユーザーに伝える
具体的に伝えてください。例:
- Tier 1 がすべて設定済み:「すべて設定されています。ステップ 4(プロンプトの例)に進んでください。」
- すべて未設定:「API キーはまだ設定されていません。無料の MCP サーバー 5 つ(Skiplagged、Kiwi、Trivago、Ferryhopper、Airbnb)はキーなしで使えるため、現時点でも現金購入の航空券やホテルを検索できます。キーを追加すると、特典航空券の検索や残高の自動取得が可能になります。」
- Tier 1 の一部が設定済み:「重要度の高いキー 4 つのうち X 個が設定されています。セットアップスクリプトで不足分を追加できます。」
ステップ 3:ローカルのセットアップスクリプトを案内する
キーが不足しており、ユーザーが追加を希望する場合は、プラットフォームに合ったコマンドを案内してください。echo $SHELL でシェルを、uname で OS を検出してください。
macOS / Linux / WSL / Git Bash
「このコマンドはターミナルで実行してください(このチャットではありません)。スクリプトはマスク入力で各キーの入力を求め、キーを検証してから、バックアップを作成したうえでシェル設定ファイルにエクスポート設定を書き込みます。キーがこのチャットのセッションを経由することはありません。
bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)または、リポジトリをクローン済みの場合:
bash scripts/setup-keys.sh完了したら、
source ~/.zshrc(または~/.bashrc、もしくは fish の設定ファイル)を実行してから、旅行の計画を依頼してください。」
Windows(PowerShell)
「このコマンドは PowerShell で実行してください(このチャットではありません)。スクリプトはマスク入力で各キーの入力を求め、PowerShell のプロファイルに書き込みます。
iwr https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.ps1 -OutFile $env:TEMP\setup-keys.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMP\setup-keys.ps1 Remove-Item $env:TEMP\setup-keys.ps1完了したら、
. $PROFILEを実行するか、新しい PowerShell ウィンドウを開いてください。」
Windows(cmd)
「PowerShell を使うのが簡単です。どうしても cmd を使う必要がある場合は、
setxでキーを設定してください。setx SEATS_AERO_API_KEY \"your-key-here\" setx DUFFEL_API_KEY_LIVE \"your-key-here\"変数を反映するには、新しい cmd ウィンドウを開いてください。
setxはレジストリに永続的に書き込む点に注意してください。」
1Password ユーザー
「シークレットを 1Password に保存している場合は、シェルの rc に書き込む代わりに、起動時に
op runで解決できます。ツールキットには、op://参照を使う.env.exampleがあります。構文については https://developer.1password.com/docs/cli/secrets-environment-variables/ を参照してください。その後、次のように起動します:op run --env-file=.env -- claude。」
チャット入力で API キーの収集を絶対に提案しないでください。 ユーザーがチャットへの貼り付けを明示的に強く求めた場合は、丁寧に断り、スクリプトが安全な方法であることを説明してください。チャットに入力したキーは、ターミナルのスクロールバック、ローカルのセッションログ、リモート API のログに残ります。スクリプトを使えば、その 3 つすべてを避けられます。
ステップ 4:プロンプト例を示す
セットアップ後(または、すでにキーが設定されている場合は今すぐ)、設定状況に合わせてプロンプトを 3~4 個示します。まず、再検出して確認してください。
キーが未設定の場合:
- 「来月、ニューヨークからロンドンまでの安い直行便を探してください。」
- 「エッフェル塔の近くで、1 泊 400 ドル未満のホテルはありますか?」
- 「ベルゲンからオスロまで、電車で行く方法を教えてください。」(スカンジナビアにいる場合)
Seats.aero を利用している場合:
- 「8 月にポイントを使って、スカンジナビアを 10 日間旅行する計画を立ててください。」
- 「3 月に東京行きの最安ビジネスクラスを 2 人分探してください。」
- 「まだ使っていない、お得な特典交換を 1 つ探してください。」
AwardWallet を利用している場合:
- 「ポイント残高と、有効期限が近づいているプログラムを表示してください。」
- 「現在利用できる移行ボーナスのうち、利用する価値があるものはどれですか?」
システムプロンプトの PRE-OUTPUT GATE に従い、質問ではなく断定的な文で締めくくります。
「準備ができました。
/travel-hacker:plan-tripと入力してガイド付きの旅行計画を始めるか、普通の英語で旅行について説明してください。」
やってはいけないこと
- チャットで API キーの入力を求めないでください。 必ず
setup-keys.shまたはsetup-keys.ps1を案内してください。チャット入力は多くの場所に記録されます。 - API キーの値をユーザーに表示しないでください。 確認時、プレビュー時を含め、どこにも表示しないでください。
- シークレットを
/tmpやその他の一時的なパスに書き込まないでください。setup-keysスクリプトはバックアップを取ったうえで、ユーザーのシェル rc を使用します。 - 「貼り付け用に export の行を表示します」と提案しないでください。 それではシークレットがチャットに残ります。
- 行動を提案する質問(「こちらで~しましょうか?」など)で締めくくらないでください。 システムプロンプトの PRE-OUTPUT GATE で禁止されています。
- ポイントやマイルの概念について長々と説明しないでください。 次の 30 秒で試せることを案内してください。
- キーがないことを謝らないでください。 「お持ちのものを使ってできることはこちらです」という形で伝えてください。
トーン
簡潔で、親しみやすく、率直にします。「何を持っているか」から「実行するスクリプトはこちらです」まで、1 分以内で案内してください。
例外的なケース
- ユーザーのシェルセッションにはキーがあるものの、rc には設定されていない場合: 現在のプロセスでは設定されていますが、セッション終了後には引き継がれないことを伝え、セットアップスクリプトを案内してください。
- ユーザーが 1Password を使っている場合: 代替手段として
op run --env-file=.env -- claudeを案内してください。 - Windows ユーザーから WSL/Git Bash について尋ねられた場合: PowerShell ではなく、macOS/Linux 向けの手順を使うよう伝えてください。bash スクリプトは WSL でも同じように動作します。
- 「キーを直接伝えるから、そちらで設定できない?」と聞かれた場合: 断ってください。理由として、チャットログに残ることを説明し、スクリプトを案内してください。それでも強く求める場合は、キーがチャットに一切入らないように、README の手動セットアップのセクションを案内してください。