Communitygithub.com

chiptsui/guided-portfolio-watch

构建并维护美股投资组合的指导型持仓观察看板。自动生成投资剧本、每日监控简报以及以解释性信息为核心的实时警报,无需金融分析专业知识,适合初学者长期被动使用。

guided-portfolio-watch 是什么?

该技能接收用户提供的任意美股投资组合,自动生成结构化的监控配置(MonitoringConfig)、两个定时运行的数据馈送(gpw-fundamentals 和 gpw-monitor)、一个交互式投资剧本以及每日事件驱动型警报。它优先以非技术语言解释市场动态,避免价格图表、交易信号或绩效基准。支持 Cursor、Claude Code 和 Codex 等平台,核心逻辑位于 `src/intent-to-config.js` 中,通过用户自然语言提取股票代码、投资期限、所有权类型和偏好模式。技能包含七步工作流:解析意图、必要时澄清(最多一个问题)、组装配置、写入 ALFS、部署馈送、构建并发布剧本、以及启用警报投递。关键设计原则包括:不询问经验水平、不要求成本基础或目标金额、以及通过引用 `setup-workflow.md` 确保部署前用户确认。权重、行业焦点和偏好说明均由动态逻辑生成,用户只需修改 `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 — 按以下模板从配置字段组装:

用户[持有/跟踪] [股票代码列表]。投资期限:[投资期限]。

[如果为指导模式:] 使用通俗易懂、无术语的英语。首次出现时定义金融术语。
将所有内容围绕用户应关注的重点以及原因进行阐述。
[如果为标准模式:] 假设用户具有中等金融素养。使用标准的金融术语。
[如果为中性模式:] 使用清晰易懂的语言。避免未经解释的行话。

警报策略:仅关注重大的长期业务动态。
排除:纯粹的价格波动、技术分析、未经证实的传闻。
包括:财报/指引变化、监管/法律事件、战略公告,
以及具有多年业务影响的供应链或产品变更。

[如果提供了权重:] 说明性配置:[股票代码] [百分比]%,...(用户提供的场景;未经当前权重核实。)

[每个股票代码的焦点领域:]
[股票代码]:[行业焦点领域]
...

[如果存在未知输入:] 已知数量、成本基础和总投资组合价值未知。不计算或暗示投资组合层面的业绩数据。

步骤 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 警报输出)
  • 使用 --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,能够生成新的公司板块,且不包含旧股票代码的引用

本技能不构建的内容

  • 价格走势图或盘中价格监控
  • 买入/卖出/持有建议
  • 财报日历
  • 与基准对比的业绩
  • 交易或订单执行

相关技能