Communitygithub.com

chiptsui/guided-portfolio-watch

建立並維護一個引導式投資組合監控看板,適用於任何美國上市股票投資組合。自動生成操作手冊(Playbook)、每日監控資訊流,以及以解釋為優先的警報通知。專為不需金融分析專業知識的初學者設計,實現被動、友善的投資管理。

guided-portfolio-watch 是什麼?

這個技能會根據使用者提供的投資組合,自動產生一個完整的監控系統。它會建立一個結構化的 `MonitoringConfig` JSON 設定檔,作為所有操作的單一事實來源,並部署兩個自動化資訊流:第一個(`gpw-fundamentals`)負責每日盤前的財務數據摘要,第二個(`gpw-monitor`)負責分析每日事件並在發生重大事件時推送警報通知。最後,它會生成一個可瀏覽的操作手冊(Playbook),以易於理解的方式總結所有監控結果。 此技能的核心優勢在於其「引導模式」與「解釋優先」的設計哲學。它會自動推斷使用者的金融知識水平(引導、標準或中立),並相應調整語言和警報內容,確保即使是新手也能理解為何某個事件(如財報、法規變更)對他們的持股很重要。支援的平台為 Alva AI 生態系統(ALFS 檔案系統、Feeds、Playbooks),使用者只需提供股票代碼,無需設定任何技術指標。 整個流程以多個步驟自動化進行:解析使用者意圖、澄清必要資訊、組裝設定檔、部署資訊流,最後發布操作手冊並確認警報傳遞。技能設計為可重複使用,只需更改 `config.json` 中的股票清單,即可在不修改任何程式碼的情況下,為新的投資組合產生完整的監控管道。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

引導式投資組合監控技能

此技能建立的內容

對於使用者提供的任何投資組合,此技能會產生:

  1. MonitoringConfig — 一個結構化的 JSON 物件,寫入 ALFS,作為股票清單、時間範圍、引導模式與偏好說明的單一事實來源。
  2. 兩個自動化資訊流 — gpw-fundamentals(財務歷史記錄)與 gpw-monitor(每日事件分析與推送警報),兩者皆在執行時讀取設定。
  3. 一個操作手冊 — 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. 明確偏好(始終優先):
   "用白話文解釋" / "向我說明" / "我是投資新手"
   "我不懂" / "幫我理解" → 引導模式

   "我要技術細節" / "假設我懂金融"
   "跳過基礎" / "技術分析"(作為偏好) → 標準模式

2. 上下文訊號(僅在沒有明確偏好時適用):
   正確使用:EBITDA、FCF、NIM、P/E、基點、淨利率、
   營運槓桿、CAGR → 標準模式

   "我該擔心嗎?" / "這對我來說意味著什麼?" / "這很糟嗎?" → 引導模式

3. 預設值(混合、衝突或無訊號):
   → 中立模式

切勿詢問「你是初學者嗎?」或「你的經驗程度如何?」。 中立模式預設使用引導版型;使用者可透過 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 — 必要時澄清(最多一個問題)

僅在答案會實質改變建構內容時提問:

情況提問
未提供股票代碼「您想要監控哪些公司?」
時間範圍衝突(當日沖銷)告知 + 確認接受長期監控

請勿詢問:持股數量、成本基礎、財務目標、經驗程度。 請勿詢問第二個問題。


步驟 3 — 組裝 MonitoringConfig

建立完整的 MonitoringConfig 物件(參閱 config/monitoring-config.schema.json)。

sectorFocusAreas — 透過 arrays-data-api-equity-fundamentals 為每個股票代碼擷取公司詳細資料。使用 sector + industry 欄位以及 src/intent-to-config.js 中的查詢表,為每個股票代碼生成一句重點說明。如果 API 呼叫失敗或產業未知,則使用通用備用文字:"關注:營收、獲利與業務特定發展。"。切勿虛構關注領域。

preferencesNote — 使用以下範本從設定欄位組裝:

使用者[持有/追蹤] [股票代碼清單]。投資時間範圍:[時間範圍]。

[如果是引導模式:]使用白話、無行話的英文。首次出現金融詞彙時加以定義。
所有內容圍繞使用者應關注什麼以及為什麼而構建。
[如果是標準模式:]假設具備中級金融素養。使用標準金融術語。
[如果是中立模式:]使用清晰易懂的語言。避免未經解釋的行話。

警報政策:僅關注重大的長期業務發展。
排除:純粹價格波動、技術分析、未經證實的謠言。
包括:財報/財測變更、監管/法律事件、策略公告、
以及對業務有多年影響的供應鏈或產品變更。

[如果提供了權重:]說明性配置:[股票代碼] [百分比]%,...(使用者提供的假設情境;非經過驗證的當前權重。)

[每個股票代碼的關注領域:]
[股票代碼]:[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 blob)
  • 無警報輸出

資訊流 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"

驗收標準

當以下情況發生時,技能即視為完成:

  • alva lint playbook 通過且無錯誤
  • alva screenshot 顯示可見資料(非空白畫面)
  • alva alert history 在排程執行後的 24 小時內顯示一行狀態為 sent 的記錄
  • 更改 config.json 中的股票代碼並重新執行 gpw-fundamentals,會產生新的公司區段,且無舊股票代碼的引用

此技能不建立的內容

  • 價格圖表或盤中價格監控
  • 買入 / 賣出 / 持有建議
  • 財報行事曆
  • 相對於基準的績效
  • 交易或訂單執行

相關技能