nav-review
SKILL_322077969 · vv1.1 · Olive 海外运营 · Owner:Olive 基金运营 · 发布于 2026-08-10
调用 62
下载 2
点赞 0
浏览 0
- 简介
- 自动编排基金NAV复核流程,串行生成现金、成本与损益报告并上传系统
- 触发词
- 复核NAV,NAV复核,生成NAV报告,check NAV
- 分发渠道
- ARK Engine
- 功能测试
- ✅ 通过 · 业务评审:✅ 通过
- 技能包文件
- nav-review/SKILL.md、nav-review/SKILL_backup.md
使用示例:请对指定文件夹执行NAV复核,生成全套报告并上传iGowin
SKILL.md 全文
Frontmatter
| name | nav-review |
|---|---|
| description | | |
NAV Review — 主调度 Skill
When to Use
- "复核 NAV [基金名]"
- "对 [文件夹] 做 NAV review"
- "check NAV"、"生成 NAV 复核报告"、"NAV reconciliation 全套"
- 用户给定一个基金某月份/某季度文件夹,要求一站式输出报告并上传 iGowin
分析顺序总则(强制,不可更改)
NAV 复核的三段分析必须严格按此顺序串行执行,下游可且仅可消费上游已经核对过的结论: 1. Cash 分析:完成 Cash Balance Check + 银行流水梳理 + Payment Log 证据,产出 Cash Review 报告。 2. Investment Cost 分析:基于 Step 1 的现金核对结果(涉及投资款进出的现金活动已闭环),完成成本变动核对,产出经验证的当期 cost 快照与 Investment Cost Review 报告。 3. Investment Unrealized G/L 分析:直接复用第二步已验证的 cost 数据,无需再次验证 cost;本步只聚焦 Market Value 与 Unrealized G/L 核对,产出 Investment UGL Review 报告。三步不得并行启动。任何并行优化只允许出现在同一步内部(例如 collect 阶段抓多张截图的 subagent),绝不允许跨步并行。---
输入
target_dir:基金期间文件夹绝对路径(必须)
Guard: 如果用户没给路径,用 ask_questions 询问;不要随意猜测。
输出
最终交付物(落在target_dir/ 根目录):
| # | HTML 文件名 | iGowin Subject |
|---|------------|----------------|
| 1 | Cash Review - [基金名] [YYYYMMDD].html | Cash 类 subject |
| 2 | Investment Cost Review - [基金名] [YYYYMMDD].html | Investment Cost 类 subject |
| 3 | Investment Unrealized GL Review - [基金名] [YYYYMMDD].html | Unrealized G/L 类 subject |
HTML 报告采用三栏交互式布局(左侧导航栏 + 中间复核数据 + 右侧 Supporting 截图面板),截图以 base64 内嵌确保完全自包含,双击即可在浏览器中打开。
中间产物(隐藏在 target_dir/.cortex/ 下,对用户不可见):
.cortex/
├── nav_profile.json
├── nav_data/*.json
└── screenshots/{cash,inv_cost,inv_ugl}/*.png
---
编排流程(3 个 Stage)
Stage 1:识别(调用 nav-review-identify)
执行 nav-review-identify skill,按其执行步骤完成。 入口校验(本 stage 第一步): 1. 确认target_dir 存在,否则 ask_questions 要求用户提供正确路径
2. 用 manage_todo_list 创建 3 个 stage 的执行计划
识别逻辑:
- 扫描文件夹结构
- 判断报告体系(Maples-FSPack / IGOWIN-Report)
- 判断 period_type(monthly / quarterly)
- 识别基金类型(MMF / Partnership / Hedge Fund)
- 定位上期文件夹与所有关键文件
- 写出
<target_dir>/.cortex/nav_profile.json
fund_name | string | 基金名称 |
| fund_code | string | 基金代码 |
| period_type | enum | "monthly" \| "quarterly" |
| nav_date | string | 当期 NAV 日期,格式 YYYY-MM-DD |
| prev_nav_date | string | 上期 NAV 日期,格式 YYYY-MM-DD |
| report_system | enum | "Maples-FSPack" \| "IGOWIN-Report" |
| fund_type | enum | "MMF" \| "Partnership" \| "Hedge Fund" |
| target_dir | string | 当期文件夹绝对路径 |
| prev_dir | string | 上期文件夹绝对路径 |
| currency | string | 基金本位币 |
| has_distribution | boolean | 当期是否有 Distribution |
| has_reinvestment | boolean | 当期是否有 MMF Reinvestment |
Guard: 若✅ Stage 1 退出条件:period_type无法识别,ask_questions要求用户确认。
nav_profile.json 存在且上述必填字段完整。
Stage 2:收集(调用 nav-review-collect)
执行 nav-review-collect skill,按其执行步骤完成。- 4 个 subagent 并行收集数据 →
nav_data/*.json - Guard: 若
has_reinvestment为 true,派生 MMF Reinvestment 跨期数据 - 3 个 subagent 并行生成截图 →
screenshots/{cash,inv_cost,inv_ugl}/*.png - PNG 落盘验证
nav_data/下至少 8 个 JSON- 每个 JSON 必须通过对应 schema 的必填字段检查(非空且关键字段完整,不允许空
{}或字段缺失的 JSON 通过) - 三个截图子目录均非空
- 每个银行账户每月至少一张对账单截图
Stage 3:生成报告(调用 nav-review-report)
执行 nav-review-report skill,按其执行步骤完成。⚠️ 本 Stage 严格串行执行,遵循分析顺序总则:1. Step 3.1 — Cash Review
- 输入:
nav_data/中的 Cash 相关数据 +screenshots/cash/ - 输出:
Cash Review - [基金名] [YYYYMMDD].html(三栏交互式 HTML) - 必须先完成本步,再启动 Step 3.2
- 输入:
nav_data/中的 Cost 相关数据 +screenshots/inv_cost/ - 输出:
Investment Cost Review - [基金名] [YYYYMMDD].html(三栏交互式 HTML) - 额外强制产物:
<target_dir>/.cortex/nav_data/verified_cost.json(schema 由 nav-review-report skill 定义) - 必须先完成本步并写出
verified_cost.json,再启动 Step 3.3
- 输入:
nav_data/中的 MV/UGL 相关数据 +screenshots/inv_ugl/+verified_cost.json(来自 Step 3.2) - 输出:
Investment Unrealized GL Review - [基金名] [YYYYMMDD].html(三栏交互式 HTML) - 强制规则:本步报告中的 Book Cost 列必须直接读取
verified_cost.json,禁止再次从 SOFI/IPA/TB 推导或核对 cost
- 三份报告全部生成完毕后,依次上传:每份执行 6 步(get_nav_packs → get_subject_names → get_upload_url → ask_questions 确认 → PUT → save_check_result)
- 上传顺序与生成顺序一致:Cash → Cost → UGL
- ⚠️ 上传前确认关卡(强制,详见
nav-review-report/references/igowin_upload.md):PUT上传与save_check_result都是不可逆操作(一旦写入 OSS 与 iGowin 流程单,无法静默撤回)。因此在调用get_upload_url之后、PUT之前,必须用ask_questions弹窗向用户展示该报告的完整上传摘要并取得明确确认。摘要必须包含:基金名、NAV 日期、流程单号、目标 subject、文件名、文件大小(MB)、报告核对结论(PASS / FAIL,差异金额)。确认话术示例:
- 选项至少包含「确认上传」「跳过该报告」「全部取消,等我手动检查」
- 用户「确认上传」 → 执行 PUT + save_check_result
- 用户「跳过该报告」 → 不调用 PUT/save_check_result,在最终交付总结中标注"用户选择不上传",继续处理下一份
- 用户「全部取消」 → 终止剩余所有报告上传,在最终交付总结中清晰列出哪些已上传 / 哪些未上传
- ⚠️ 适用范围:此关卡同时适用于:(a) 本主 skill 串行调度三份报告时;(b)
nav-review-cash-report/nav-review-cost-report/nav-review-ugl-report三个子 skill 被用户单独触发运行时(详见各子 skill 的 Step 3/4 上传段说明)。一次只为一份报告询问;多份报告时不允许使用一次"全部确认"豁免后续报告的关卡。
Guard: 若 Step 3.2 失败导致 verified_cost.json 缺失,Step 3.3 必须停止并提示用户先修复 Cost Review,不允许 UGL 报告 fallback 自行验证 cost。
✅ Stage 3 退出条件:
- 3 份 HTML 交互式报告存在且可在浏览器中正确打开
verified_cost.json存在且字段完整- 3 次 iGowin save_check_result 全部成功
交付总结
在最终回复中给用户简明摘要(不展示.cortex/ 路径):
- 三份报告文件名(用 markdown 链接)
- 关键结论(PASS / FAIL,差异金额)
- iGowin 上传状态
子 skill 调用契约
| 阶段 | 输入 | 输出 | 失败回退 | |------|------|------|---------| | identify | target_dir | nav_profile.json | 无法识别 period_type → ask_questions | | collect | target_dir + nav_profile.json | nav_data/*.json + screenshots/**/*.png | subagent 失败 → run_in_terminal 直接执行 | | report | target_dir + nav_profile.json + nav_data/ + screenshots/ | 3 份 HTML 交互式报告 + iGowin 上传成功 | iGowin subject 歧义 → ask_questions | 每个 stage 失败时,不要跳过,必须先修复再前进。 ---关键注意事项
1. 本 skill 不重复实现业务逻辑:所有具体步骤、命令模板、报告模板都在三个子 skill 中定义,本 skill 只负责按顺序调度。 2. 分析顺序不可破坏:Cash → Cost → UGL 必须串行;UGL 报告必须复用 Cost 阶段产出的verified_cost.json,禁止重新核对 cost。
3. 月度 / 季度自动适配:由 nav-review-identify 输出的 period_type 决定下游一切,主调度 skill 不需要分支。
4. 三份报告独立产出,但 UGL 对 Cost 有硬依赖:Cash Review 与 Investment Cost Review 之间相互独立,其中一份失败不影响另一份正常输出。但 Investment UGL Review 必须依赖 Cost Review 产出的 verified_cost.json,若 Cost Review 失败导致该文件缺失,UGL Review 必须停止(见 Guard),此为唯一例外。最终回复必须如实报告每份的状态。
5. 不暴露中间路径:与用户沟通时只说 HTML 文件名和结论,不提 .cortex/ 目录。
6. 对老入口 nav-monthly-review / nav-quarterly-review 保持兼容:它们已被改造为薄壳,会转交本 skill 执行。