mcpField
R
retirement-syncing

retirement-syncing

github.com/aojdevstudio数据与数据库33045 次安装5 天前更新
代码仓库

关于 retirement-syncing

用于解析 Vanguard 和 Fidelity 退休账户 CSV 导出并汇总持仓数量的工作流技能。它仅报告结果,不会写入数据库或其他持久化目标。

主要功能

  1. 01解析 Vanguard 与 Fidelity CSV
  2. 02按股票代码汇总持仓数量
  3. 03检查导出日期与陌生代码
  4. 04数量变化超过 20% 时提示

适用场景

  1. 01汇总退休账户的股票持仓
  2. 02检查 CSV 导出的新旧程度
  3. 03比较持仓数量并标记大幅变化

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aojdevstudio/finance-guru --skill retirement-syncing

安装后在 Claude Code 中输入/retirement-syncing确认已加载。

详细介绍

退休账户同步

数据源:仅 CSV(暂无实时路径)

与其他同步技能不同,退休账户不使用“同步优先 + 数据库读取”模式。Vanguard IRA / 证券账户和 Fidelity 401(k) 未在 SnapTrade 中获得授权(只有一个应税保证金 Fidelity 账户配置在 config/snaptrade-accounts.yaml 中)。因此,没有可刷新的实时 API 快照写入这些账户对应的 family_office.db,CSV 导出文件仍是唯一数据来源。这是对通用 同步优先 + 数据库读取 模式的一项有意记录在案的例外。

启用实时路径的前提条件(此技能接入数据库前必须完成):

  1. 在 SnapTrade 中授权 Vanguard 和 Fidelity 退休账户机构。
  2. 将由此产生的每个账户添加到 config/snaptrade-accounts.yaml,设置 role,并设为 enabled: true。
  3. 扩展持仓同步(或编写专门的退休账户同步),将这些账户写入数据库,然后将此技能改为第 0 步刷新 + 数据库读取。

在以上三项全部完成之前,不要虚构实时路径:请使用下面的 CSV 工作流。

用途

解析 Vanguard 和 Fidelity 退休账户 CSV 导出文件,并报告当前持仓和数量。

⚠️ 此技能目前没有持久化目标。 它之前写入的 Google Sheets DataHub 已于 2026-07-31 停用,而 family_office.db 中没有退休账户表,因为这些账户不在 SnapTrade 中。在以上三个前提条件满足之前,此技能仅解析并报告数据。不要声称持仓已在任何地方“同步”。

使用时机

在以下情况下使用此技能:

  • 从 imports/retirement/ 同步退休账户持仓
  • 用户提到:“同步退休账户”“更新退休账户”“vanguard sync”“更新 401k”“IRA sync”
  • 处理 imports/retirement/ 目录中的文件

源文件

位置:imports/retirement/

文件来源内容
OfxDownload.csvVanguard IRA账户 <ira-1> 和 <ira-2> 的持仓
OfxDownload (1).csvVanguard 证券账户账户 <brokerage-1> 和 <brokerage-2> 的持仓
Portfolio_Positions_*.csvFidelity 401(k){employer_name} 401(k) 计划持仓

CSV 格式

Vanguard OFX 格式(OfxDownload.csv)
Account Number,Investment Name,Symbol,Shares,Share Price,Total Value,
<account-number>,VANGUARD S&P 500 INDEX ETF,VOO,18.1817,629.3,11441.74,

关键字段:

  • 第 3 列:代码
  • 第 4 列:份额(数量)
Fidelity 401k 格式(Portfolio_Positions_*.csv)
Account Number,Account Name,Symbol,Description,Quantity,Last Price,...
86689,{employer_name} 401(K) PLAN,FGCKX,FID GROWTH CO K,4.447,$50.04,...

关键字段:

  • 第 3 列:代码
  • 第 5 列:数量

已知退休账户代码

在 Vanguard IRA、Vanguard 证券账户和 Fidelity 401(k) 中见过的持仓: VOO、VUG、VTSAX、SCHG、PLTR、NVDA、TSLA、VB、ARKK、VMFXX、FGCKX、FXAIX。

Mary 的 Goucher 403(b) 和 Principal 401(k) 配置单独记录在 user-profile.yaml 和策略文档中,不通过此技能跟踪。

核心工作流

1. 读取所有 CSV 文件
# Read Vanguard files
vanguard_1 = read_csv("imports/retirement/OfxDownload.csv")
vanguard_2 = read_csv("imports/retirement/OfxDownload (1).csv")

# Read latest Fidelity file (by date in filename)
fidelity = read_csv("imports/retirement/Portfolio_Positions_*.csv")
2. 按代码汇总持仓

同一代码可能出现在多个账户中,因此请将所有数量相加:

holdings = {}
for file in [vanguard_1, vanguard_2, fidelity]:
    for row in file:
        ticker = row['Symbol']
        shares = float(row['Shares'] or row['Quantity'])
        holdings[ticker] = holdings.get(ticker, 0) + shares

预期汇总:

  • VOO:汇总各账户数量(IRA + 证券账户)
  • VUG:汇总各账户数量
  • PLTR:汇总各账户数量(<brokerage-1> + <brokerage-2>)
  • SCHG:汇总各账户数量
  • VMFXX:汇总各账户数量(所有货币市场账户)
  • VTSAX:汇总各账户数量
3. 报告汇总后的持仓

在回复中以表格形式列出代码和总数量。没有可写入的目标,因此报告本身就是交付内容。

安全检查

报告前:

  • 确认 imports/retirement/ 中的 3 个 CSV 文件均存在
  • 记录每个 CSV 的导出日期;标记超过 30 天的文件
  • 指出任何不在已知代码列表中的代码

重大变动警告(>20%): 如果某项数量较上次报告的数字变动超过 20%,请展示差异,并在将数字视为准确值之前向用户确认。

更新后验证

验证:

  • 所有数量均已正确更新
  • C 列及之后的公式仍正常工作
  • 退休账户总价值与 CSV 总额之和大致相符
  • 未引入公式错误

日志摘要:

Updated 12 retirement positions:
- VOO: NNN.NNNN shares
- VUG: NN.NNNN shares
- VTSAX: NNN.NNN shares
...
Total Retirement Value: sum of updated position values

关键规则

可写入的列
  • B 列:仅限数量
请勿修改
  • A 列:股票代码(预设)
  • C–S 列:所有公式
行映射

退休账户部分从第 46 行开始(表头位于第 45 行)。 第 46–62 行为退休账户持仓预留。

触发关键词

  • “同步退休账户”
  • “更新退休账户”
  • “退休账户”
  • “vanguard 同步”
  • “更新 401k”
  • “IRA 同步”
  • “退休账户数量”

仅供教育用途。不构成投资建议。此处报告的退休账户持仓是从经纪商导出的 CSV 文件中解析得出,仅反映导出时的数据;采取行动前,请向您的计划提供方核实。请咨询持牌金融和税务专业人士。

技能类型:领域(工作流指导) 执行方式:建议 优先级:中

评论

支持 Markdown