Communitygithub.com

chiptsui/guided-portfolio-watch

米国上場株式の任意のポートフォリオに対するガイド付きポートフォリオウォッチを構築・維持します。プレイブック、毎日のモニタリングフィード、説明重視のアラートを生成します。金融分析の専門知識がなくても、手間をかけずに初心者向けの投資を実現するために最適化されています。

guided-portfolio-watch とは?

このスキルは、ユーザーが提供する米国上場株式ポートフォリオに対して、自動化されたモニタリングとアラートのパイプラインを構築します。主な成果物は、銘柄リストやガイダンスモードを定義する構造化JSON設定ファイル、日次ファンダメンタル分析とイベント監視を行う2つの自動化フィード、そして説明を最優先したアラートを生成するプレイブックです。このスキルは、特に初心者投資家向けに設計されており、ユーザーの意図を解析して(ガイド付き/標準/ニュートラル)のガイダンスモードを自動推論し、専門用語を避けたり平易な英語で説明したりします。設定ファイルを変更してフィードを再実行するだけで、コードを変更することなく新しいポートフォリオに対応できる再利用可能な設計です。対応プラットフォームはAlva(ALFS)で、プレイブックのリンティング、リリース、スクリーンショット生成、プッシュ通知によるアラート配信を完全にサポートします。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/chiptsui/alva-guided-portfolio-watch/tree/main/.agents/skills/guided-portfolio-watch

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

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

ドキュメント

ガイド付きポートフォリオウォッチスキル

このスキルが構築するもの

ユーザーが提供するポートフォリオに対して、このスキルは以下を生成します。

  1. MonitoringConfig — 銘柄リスト、投資期間、ガイダンスモード、プレファレンスノートを一元管理する構造化JSONオブジェクト。ALFSに書き込まれます。
  2. 2つのフィード自動化 — gpw-fundamentals(財務履歴)とgpw-monitor(日次イベント分析+プッシュアラート)。どちらも実行時に設定を読み取ります。
  3. 1つのプレイブック — guided-portfolio-watch。https://alva.ai/u/{username}/playbooks/guided-portfolio-watch で公開されます。
  4. 毎日のアラート — 重要なイベント発生時に説明を最優先した通知。

このスキルは再利用可能です。config.json を変更しフィードを再実行するだけで、コードを変更することなく新しいポートフォリオ用のプレイブックとアラートパイプラインが完全に生成されます。


ステップ 1 — ユーザーの意図を解析する

src/intent-to-config.js を呼び出す(またはそのロジックを適用する)ことで、ユーザーのメッセージから MonitoringConfig を抽出します。質問をする前にこれを行ってください。

ティッカー抽出

1~5文字の大文字シーケンス、または BRK.B のようなパターンをスキャンします。米国上場株式のみを受け入れます。ETF、暗号通貨(例:BTC、ETH、SOL)、オプション、米国以外のティッカーは拒否し、その旨をユーザーに通知して受け入れたシンボルで続行します。

一般的な単語のブロックリスト(大文字でも拒否):I, A, AN, OR, FOR, AND, AT, IN, ON, MY, ME, THE。

ガイダンスモード(嗜好の推論 — 専門性の主張ではありません)

以下の優先順位を適用します。最初に一致したもので確定します。

1. 明示的な嗜好(常に優先):
   "平易な英語で" / "私に説明してください" / "投資は初心者です"
   "理解できません" / "理解するのを助けてください" → guided

   "技術的な詳細が欲しい" / "金融知識はあるものとする"
   "基本は省略" / "テクニカル分析"(嗜好として) → standard

2. 文脈シグナル(明示的な嗜好がない場合のみ):
   EBITDA、FCF、NIM、P/E、ベーシスポイント、純利息マージン、
   オペレーティングレバレッジ、CAGR を正しく使用 → standard

   "心配すべきですか?" / "これは私にとって何を意味するの?" / "これは悪い?" → guided

3. デフォルト(混合、矛盾、またはシグナルなし):
   → neutral

「あなたは初心者ですか?」や「あなたの経験レベルは?」とは決して尋ねないでください。 NEUTRAL はデフォルトで guided レイアウトを使用します。ユーザーは AGENTS.md で変更できます。

投資期間

  • キーワード: "長期", "3~5年", "ずっと保有", "リタイアメント" → long-term
  • キーワード: "中期", "1~3年", "今後数年" → medium-term
  • キーワード: "デイトレード", "スイングトレード", "短期", "1年未満" → 未サポート。ユーザーに通知し、続行する前に長期モニタリングが許容されるか確認します。
  • デフォルト(シグナルなし): long-term。

所有権分類

  • "所有している", "購入した", "私のポジション", "持っている" → holding
  • "ウォッチしている", "追跡している", "目を離さない" → watchlist
  • 曖昧 → holding(より安全なデフォルト。保有者に所有していないと伝えるのを避けます)

所有権はアラートの表現にのみ影響します。パイプラインはすべてのシンボルを同一に扱います。

ウェイト(オプション)

明示的なパーセンテージパターンを解析します: "50% NVDA, 30% TSLA, 20% AAPL"。提供された場合、weights オブジェクトとして保存します(値は0~1、合計は1.0 ± 0.02。丸め誤差がある場合は正規化します)。提供されない場合は、設定から weights を省略します。


ステップ 2 — 必要に応じて確認(最大1つの質問)

構築内容に実質的な影響がある場合のみ質問します。

状況質問内容
ティッカーが提供されていない"どの企業を監視したいですか?"
投資期間の競合(デイトレード)通知し、長期モニタリングが許容されるか確認する

以下のことについては質問しないでください:株式数、原価、財務目標、経験レベル。 二つ目の質問はしないでください。


ステップ 3 — MonitoringConfig を組み立てる

完全な MonitoringConfig オブジェクトを構築します(config/monitoring-config.schema.json を参照)。

sectorFocusAreas — arrays-data-api-equity-fundamentals を介して各ティッカーの企業詳細を取得します。sector + industry フィールドと src/intent-to-config.js のルックアップテーブルを使用して、ティッカーごとに一文のフォーカスノートを生成します。API呼び出しが失敗した場合やセクターが不明な場合は、汎用フォールバックを使用します:"Watch: revenue, earnings, and business-specific developments."。フォーカスエリアを捏造しないでください。

preferencesNote — 設定フィールドから以下のテンプレートを使用して組み立てます。

ユーザーは [所有/追跡中] [ティッカーリスト]。投資期間: [期間]。

[GUIDED の場合:] 平易で専門用語のない英語を使用してください。財務用語が最初に登場したときに定義してください。
すべてを、ユーザーが何に注意を払うべきか、そしてその理由を中心に構成してください。
[STANDARD の場合:] 中級レベルの金融リテラシーを想定してください。標準的な財務用語を使用してください。
[NEUTRAL の場合:] 明確でわかりやすい言語を使用してください。説明のない専門用語は避けてください。

アラートポリシー: 重要な長期的なビジネスの進展のみに焦点を当てます。
除外: 純粋な価格変動、テクニカル分析、根拠のない噂。
含む: 収益/ガイダンスの変更、規制/法的イベント、戦略的発表、
および複数年にわたるビジネス影響を持つサプライチェーンや製品の変更。

[ウェイトが提供された場合:] 参考配分: [ティッカー] [割合]%、... (ユーザー提供のシナリオ。現在のウェイトは未確認。)

[ティッカーごとのフォーカスエリア:]
[ティッカー]: [sectorFocusArea]
...

[不明な入力がある場合:] 数量、原価、ポートフォリオ総額は不明です。ポートフォリオレベルのパフォーマンス数値を計算または暗示しないでください。

ステップ 4 — 設定を ALFS に書き込む

# 設定をローカルの一時ファイルにシリアライズし、ALFS に書き込む
alva fs write --path '~/feeds/gpw-monitor/v1/config.json' --file /tmp/gpw-config.json --mkdir-parents

書き込みが成功したことを確認します:

alva fs read --path '~/feeds/gpw-monitor/v1/config.json'

同じ設定を ~/feeds/gpw-fundamentals/v1/config.json にも書き込みます(両方のフィードがそれぞれのパスから読み取るため、疎結合を維持します)。


ステップ 5 — フィードをデプロイする(ユーザーの承認が必要)

デプロイする前に references/setup-workflow.md を読んでください。ユーザーが MonitoringConfig の内容を確認するまでデプロイしないでください。

フィード 1: gpw-fundamentals(テンプレート templates/gpw-fundamentals.stub.js を使用)

  • Cron: 15 6 * * *
  • 出力: fundamentals/snapshot(JSON ブロブ)
  • アラート出力なし

フィード 2: gpw-monitor(テンプレート templates/gpw-monitor.stub.js を使用)

  • Cron: 30 6 * * *
  • 出力: analysis/decision + alerts/daily(V2 alertOutput)
  • --push-notify を指定してデプロイ

ステップ 6 — プレイブックを構築して公開する(ユーザーの承認が必要)

テンプレート templates/gpw-playbook.stub.html を使用します。すべての [GPW-*] マーカーを埋めてください。完全なライフサイクルに従います:alva lint playbook → alva release playbook-draft → alva release playbook → alva screenshot。


ステップ 7 — アラート配信を有効にする(ユーザーの承認が必要)

公開すると、所有者の FEED アラートバインディングが自動的に作成されます。配信を確認します:

alva alert history --automation gpw-monitor
# 期待される結果: ステータスが "sent" の行が少なくとも1つあること

受け入れ基準

このスキルは以下の条件が満たされたときに完了します:

  • alva lint playbook がエラーなしでパスする
  • alva screenshot に可視データが表示される(空白のフレームではない)
  • alva alert history に、スケジュール実行から24時間以内に sent の行が表示される
  • config.json のティッカーを変更し、gpw-fundamentals を再実行すると、古いティッカーの参照なしで新しい企業セクションが生成される

このスキルが構築しないもの

  • 価格チャートや日中価格監視
  • 買い/売り/保有の推奨
  • 収益カレンダー
  • ベンチマークとのパフォーマンス比較
  • トレーディングまたは注文執行

関連スキル