20czy/investment-tracker/SKILL.md
投资组合管理助手。可查询/更新持仓、现金、日记、权益曲线,以及通过截图导入持仓。
npx skillsauth add openclaw/skills investment-trackerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本文档供 AI 代理使用。基础 URL:http://localhost:8000。
接口详情见 references/api-docs.md。
| 类型 | 接口 | 执行前是否需要用户确认 | |------|------|----------------------| | 只读 | GET /api/holdings、GET /api/cash、GET /api/diary、GET /api/curve、GET /api/imports、GET /api/hs300 | 否,直接执行并展示结果 | | 写操作 | POST /api/holdings/bulk、POST /api/cash、POST /api/diary、POST /api/curve/point、POST /api/imports/rollback/{id}、DELETE /api/imports/{id} | 是,必须先展示预览,等用户回复"确认"后再执行 | | 分析+写 | POST /api/external/upload → POST /api/holdings/bulk | 分析步骤自动执行;写入步骤需用户确认 |
| curl 错误 / HTTP 状态码 | AI 应对策略 |
|------------------------|------------|
| curl: (7) Connection refused | 提示用户:"本地服务未启动,请在 backend 目录运行 uvicorn main:app --reload --port 8000" |
| 503 | 提示用户:"DASHSCOPE_API_KEY 未配置或无效,请检查 backend/.env 文件" |
| 502 | 提示用户:"AI 接口调用失败,请稍后重试" |
| 404 | 提示用户:"未找到指定记录,请确认 ID 是否正确" |
| 400 | 将响应体中的 detail 字段内容告知用户 |
触发词:上传截图、导入持仓、更新持仓、今天持仓、截图持仓
curl -sS -X POST http://localhost:8000/api/external/upload \
-F "images=@<图片绝对路径>" \
-F "notes=<用户补充说明,无则省略>" \
-F "portfolio_date=<YYYY-MM-DD,无则省略>"
多张截图时重复 -F "images=@<路径>" 参数。
解析返回结果,向用户展示:
summary:AI 点评diff.added:新增持仓(代码、名称、股数)diff.removed:移除持仓(代码、名称)diff.modified:变动持仓(代码、名称、before/after 对比)diff.unchanged_count:未变动数量total_assets / total_pnl(若不为 null)必须暂停,向用户提问:
"分析完成,是否确认将以上变动更新至持仓系统?"
将 Step 1 返回的 analyzed_holdings 数组写入临时文件,然后提交:
# 将 analyzed_holdings 写入临时文件(在当前工作目录)
echo '<analyzed_holdings 的 JSON 数组>' > /tmp/holdings_update.json
curl -sS -X POST http://localhost:8000/api/holdings/bulk \
-H "Content-Type: application/json" \
-d "{\"holdings\": $(cat /tmp/holdings_update.json), \"label\": \"<YYYY-MM-DD> 截图导入\"}"
rm /tmp/holdings_update.json
成功后告知用户持仓已更新。
若 Step 1 返回的 total_assets 不为 null,询问用户:
"本次截图识别到总资产 ¥<total_assets>,是否同时记录到权益曲线?"
用户确认后执行(日期取 Step 1 返回的 date):
curl -sS -X POST http://localhost:8000/api/curve/point \
-H "Content-Type: application/json" \
-d "{\"date\": \"<date>\", \"value\": <total_assets>}"
触发词:查看持仓、我的持仓、现在持仓、持仓情况、持仓列表
直接执行(无需确认):
curl -sS http://localhost:8000/api/holdings
展示格式建议(表格形式):
| 代码 | 名称 | 股数 | 成本价 | 现价 | 行业 | 备注 | |------|------|------|--------|------|------|------| | ... | ... | ... | ... | ... | ... | ... |
若返回空数组,告知用户:"当前持仓为空。"
触发词:
curl -sS http://localhost:8000/api/cash
取响应中的 amount 字段,告知用户当前现金余额。
先告知用户将要执行的操作:
"将现金余额更新为 ¥<amount>,确认吗?"
用户确认后执行:
curl -sS -X POST http://localhost:8000/api/cash \
-H "Content-Type: application/json" \
-d "{\"amount\": <数值>}"
取响应中的 amount 字段,告知用户更新后的余额。
触发词:
curl -sS http://localhost:8000/api/diary
按日期倒序展示,包含字段:日期、类型、股票代码、备注、情绪。
若返回空数组,告知用户:"暂无日记记录。"
从用户描述中提取信息,先展示将要记录的内容:
"将新增以下日记,确认吗? 日期:<date> | 类型:<type> | 代码:<code> | 备注:<remark> | 情绪:<mood>"
type 可选值:买入、卖出、观察、调仓、清仓
mood 可选值:理性、审慎、乐观、焦虑(若用户未指定,默认填"理性")
code:若用户未指定具体股票,填 ""
用户确认后执行:
curl -sS -X POST http://localhost:8000/api/diary \
-H "Content-Type: application/json" \
-d "{\"date\": \"<YYYY-MM-DD>\", \"type\": \"<type>\", \"code\": \"<code>\", \"remark\": \"<remark>\", \"mood\": \"<mood>\"}"
取响应中的 id 字段,告知用户日记已记录(ID: <id>)。
触发词:
curl -sS http://localhost:8000/api/curve
展示日期与总市值的序列(按日期升序)。若数据点 ≥2,可计算区间涨幅告知用户。
若返回空数组,告知用户:"暂无权益曲线数据。"
先告知用户将要执行的操作:
"将记录权益数据点:<date> ¥<value>,若该日期已存在则覆盖,确认吗?"
用户确认后执行:
curl -sS -X POST http://localhost:8000/api/curve/point \
-H "Content-Type: application/json" \
-d "{\"date\": \"<YYYY-MM-DD>\", \"value\": <数值>}"
触发词:沪深300、基准对比、跑赢大盘、指数走势、大盘表现
直接执行(无需确认):
# 默认 180 个交易日
curl -sS "http://localhost:8000/api/hs300"
# 指定天数(7~1000)
curl -sS "http://localhost:8000/api/hs300?days=<N>"
返回 date / close 数组,按日期升序。
展示建议:
错误处理:
502:告知用户"沪深300数据获取失败,可能是网络问题或 Yahoo Finance 暂时不可用"404:告知用户"Yahoo Finance 未返回有效数据,请稍后重试"触发词:
curl -sS http://localhost:8000/api/imports
展示列表(按时间倒序):ID、时间、标签、持仓条数。
"将把持仓回滚到快照 #<id>(<label>,<created_at>,共 <holding_count> 条),回滚前会自动备份当前持仓,确认吗?"
curl -sS -X POST http://localhost:8000/api/imports/rollback/<id>
告知用户回滚成功,并展示回滚后持仓条数。
先展示目标记录信息,请求确认:
"将删除快照 #<id>(<label>,<created_at>),此操作不影响当前持仓,确认吗?"
用户确认后执行:
curl -sS -X DELETE http://localhost:8000/api/imports/<id>
告知用户删除成功。
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。