Skill: 141553/long-term-plan (version 2.1.0)

--- name: long-term-plan description: 长期计划推进技能（v2.0）。支持心跳联动内置、条件触发提醒、资产追踪、里程碑系统、多任务状态。当用户说"开一个长期计划"、"今天计划任务"、"阶段复盘"、"滚动下一阶段"、"列出所有计划"时使用。 metadata: openclaw: emoji: 📋 tags: [plan, task, long-term, milestone, trigger, asset-tracking] --- # 长期计划推进 v2.0 ## 核心理念 **滚动节点式规划**：每 3-5 天为一个阶段，阶段结束时复盘，再滚动规划下一阶段。 ## v2.0 新特性 - ✅ **心跳联动内置**：计划文件声明触发器，自动注册提醒 - ✅ **条件触发提醒**：当基金涨跌/指数到达阈值时触发 - ✅ **资产追踪集成**：引用基金代码，心跳自动更新净值 - ✅ **任务类型扩展**：待办/待决策/条件触发/进行中/已完成 - ✅ **里程碑系统**：独立于阶段的关键节点 - ✅ **计划暂停冻结**：支持中间状态 - ✅ **日期自动计算**：进度、剩余天数、复盘日自动维护 --- ## 极简指令 | 指令 | 说明 | |------|------| | `开一个长期计划` | 创建新计划（引导式问答） | | `开一个长期计划（理财模板）` | 用理财模板创建 | | `开一个长期计划（从上下文）` | 从当前对话信息直接创建 | | `今天计划任务` | 显示当天所有计划的今日任务 | | `我完成了xxx` | 自动勾选对应任务 | | `阶段复盘` | 自动统计 + 生成复盘 + 归档 | | `滚动下一阶段` | 生成新阶段模板 | | `列出所有计划` | 展示所有计划状态 | | `暂停这个计划` | 暂停（心跳不再推送） | | `恢复这个计划` | 恢复暂停的计划 | | `结束这个计划` | 标记完成 + 归档 | --- ## 文件结构 ``` memory/tasks/ ├── index.json # 计划列表索引 + 资产快照 ├── {task-name}-plan.md # 具体计划文件 └── {task-name}-triggers.json # 触发器配置（自动生成） ``` --- ## 计划文件模板 v2.0 ```markdown # {任务名} **状态**：进行中 | **开始**：2026-05-11 | **进度**：15%（阶段1/4） **模型**：激进成长 | **风险等级**：中等 --- ## 目标与策略 **最终目标**：一年内资产从8,000元增长到15,000元（+87.5%） **核心策略**： 1. 短期波段操作为主，关注科技/港股 2. 每月定投3,000元 3. 设置止盈止损线（半导体+25%止盈50%，整体回撤-25%降仓） **压力测试基准**： | 指标 | 目标值 | 当前值 | 偏离度 | |------|--------|--------|--------| | 总资产 | 15,000 | 9,392 | -37% | | 月收益 | +5% | +17.4% | +12.4pp | --- ## 资产快照 > *上次更新：2026-05-11 收盘* | 基金代码 | 基金名称 | 金额 | 占比 | 近7日 | |----------|----------|------|------|-------| | 024975 | 华泰柏瑞半导体ETF联接C | 1,218 | 13% | +5.87% | | 008586 | 华夏人工智能ETF联接C | 765 | 8% | +3.20% | | 014306 | 华泰柏瑞中证500指数增强C | 4,613 | 49% | +2.10% | | 010024 | 广发沪港深新起点股票C | 2,796 | 30% | +1.85% | | **合计** | — | **9,392** | 100% | +2.91% | --- ## 触发器配置 ### 时间触发 - `每天 12:30` 推送阶段进度和今日任务 - `复盘日 12:30` 推送阶段复盘报告 - `关键日期-1天 12:30` 推送预警提醒 ### 条件触发 - `当 024975 涨超25%` → 提醒"半导体止盈50%" - `当 024975 跌超15%` → 提醒"半导体止损或加仓" - `当 整体账户回撤超25%` → 提醒"降权益仓位到50%" - `当 沪深300 跌到3500以下` → 提醒"可考虑加仓" --- ## 当前阶段：{阶段名}（{开始} - {结束}） **阶段目标**：{一句话} **进度**：0% （0/X） | **剩余**：5天 | **复盘日**：{结束日期} ### 任务列表 - [ ] 普通任务 [高] - [?] 待决策：选方案A还是B [高] - [!] 条件触发：半导体涨超25%时止盈50% [高] - [~] 进行中：每月定投（已投1/12） [中] - [x] 已完成的任务 [低] ### 任务状态说明 | 符号 | 状态 | 含义 | |:---:|:---|:---| | `[ ]` | 待办 | 普通任务，等待执行 | | `[?]` | 待决策 | 需要用户选择，标黄提醒 | | `[!]` | 条件触发 | 等待外部条件满足 | | `[~]` | 进行中 | 长期任务执行中 | | `[x]` | 已完成 | 已完成 | --- ## 里程碑 | 日期 | 事件 | 状态 | |------|------|:----:| | 5月13日 | 特朗普访华开始 | ✅ | | 5月18日 | 中证500满7天，可免赎回费操作 | ⏳ | | 6月底 | 首月定投完成，进度评估 | 🔜 | | 12月底 | 年度再平衡 | 🔜 | --- ## 历史归档 | 阶段 | 日期 | 完成率 | 效果 | 阶段收益 | 关键决策 | 教训 | |------|------|:------:|:----:|:--------:|----------|------| | 建仓期 | 5/11-5/15 | 80% | ⭐⭐⭐⭐ | +17.4% | 访华利好，选防守反击 | 半导体应更早止盈 | --- *创建：2026-05-11* *版本：v2.0* ``` --- ## index.json 格式 v2.0 ```json { "plans": [ { "name": "一年理财计划", "file": "finance-2026-plan.md", "status": "active", "phase": 2, "phaseName": "技术深耕", "startDate": "2026-05-11", "endDate": "2026-05-15", "daysLeft": 2, "progress": 15, "created": "2026-05-11", "triggers": { "time": ["daily-12:30", "review-day-12:30"], "conditional": [ {"fund": "024975", "condition": "gain>25%", "action": "提醒半导体止盈50%"}, {"fund": "portfolio", "condition": "drawdown>25%", "action": "提醒降仓位到50%"} ] }, "assetSnapshot": { "lastUpdated": "2026-05-11", "totalAsset": 9392, "weekChange": "+2.91%", "positions": [ {"code": "024975", "name": "半导体ETF联接C", "amount": 1218}, {"code": "008586", "name": "华夏AI ETF联接C", "amount": 765} ] } } ] } ``` --- ## 工作流程 ### 1. 创建长期计划 **模式A：交互式问答**（信息不全时） ``` 用户：开一个长期计划 问：计划名称？ 答：一年理财计划 问：最终目标是什么？ 答：一年内资产翻倍 问：当前阶段要做什么？（3-5天） 答：建仓期 问：阶段天数？ 答：5天 问：具体任务（逗号分隔）？ 答：设置定投, 选候选基金, 完成首次建仓 问：有条件触发吗？（如涨超25%止盈） 答：半导体涨超25%止盈50% 问：需要追踪资产吗？（提供基金代码） 答：024975, 008586, 014306, 010024 → 自动生成计划文件 → 自动注册触发器到cron → 自动更新 index.json ``` **模式B：从上下文直接创建**（对话已有完整信息） ``` 用户：开一个长期计划（从上下文） → Agent从当前对话提取： - 目标：一年翻倍 - 策略：短期波段+定投 - 当前持仓：4只基金 - 阶段：建仓期 - 任务：设置定投、选基金、建仓 - 条件触发：半导体涨25%止盈 → 直接生成完整计划文件，无需逐个问答 ``` **模式C：使用模板**（快速创建） ``` 用户：开一个长期计划（理财模板） → 自动填充： - 目标：资产增长 - 策略：分散配置+定期复盘 - 阶段：建仓期（5天） - 任务：设置定投、选基金、建仓、复盘 - 触发器：每天进度推送、复盘日提醒 - 资产追踪：待填写基金代码 ``` ### 2. 触发器自动注册 计划创建后，自动执行： ```javascript // 解析计划文件中的触发器 const triggers = parseTriggers(planFile); // 时间触发 → 注册cron for (const t of triggers.time) { cron.register({ schedule: t.schedule, // "每天 12:30" → "30 12 * * *" action: "push-plan-progress", planId: plan.id }); } // 条件触发 → 写入 triggers.json，心跳检查 for (const t of triggers.conditional) { triggerStore.add({ planId: plan.id, fund: t.fund, condition: t.condition, action: t.action }); } ``` ### 3. 心跳执行流程 每次心跳时： ``` 1. 读取所有 status=active 的计划 2. 检查时间触发器： - 是否到推送时间？ - 是否到复盘日？ - 是否有关键日期预警？ 3. 检查条件触发器： - 调用基金API获取净值 - 计算涨跌幅 - 判断是否满足条件 4. 更新资产快照： - 拉取基金净值 - 更新 index.json 中的 assetSnapshot 5. 生成推送内容： - 今日任务 - 进度提醒 - 条件触发警告 - 里程碑状态 ``` ### 4. 条件触发检查逻辑 ```javascript // 心跳时检查条件触发 async function checkConditionalTriggers(plan) { for (const trigger of plan.triggers.conditional) { // 获取基金净值 const nav = await fetchFundNav(trigger.fund); const changePercent = calculateChange(nav, trigger.baselineNav); // 判断条件 if (trigger.condition === "gain>25%" && changePercent > 25) { return { triggered: true, message: `📉 ${trigger.fund} 已涨超25%，建议${trigger.action}` }; } if (trigger.condition === "drawdown>25%") { const portfolioDrawdown = calculatePortfolioDrawdown(plan); if (portfolioDrawdown > 25) { return { triggered: true, message: `⚠️ 整体账户回撤${portfolioDrawdown}%，建议${trigger.action}` }; } } } return { triggered: false }; } ``` ### 5. 资产追踪更新 ```javascript // 心跳时更新资产快照 async function updateAssetSnapshot(plan) { let totalAsset = 0; const positions = []; for (const pos of plan.assetSnapshot.positions) { // 调用天天基金API const nav = await fetch(`https://fundgz.1234567.com.cn/js/${pos.code}.js`); const value = pos.shares * nav; // 或直接记录金额 totalAsset += value; positions.push({ ...pos, currentValue: value }); } // 更新 index.json plan.assetSnapshot = { lastUpdated: today(), totalAsset, weekChange: calculateWeekChange(positions), positions }; } ``` ### 6. 阶段复盘（结构化） ``` 用户：阶段复盘 → 自动统计： - 总任务数：5 - 已完成：4 - 完成率：80% - 阶段用时：5天 - 阶段收益：+17.4% → 自动对比压力测试： | 指标 | 目标 | 实际 | 偏离 | |------|------|------|------| | 总资产 | 9,500 | 9,392 | -1.1% ✅ | → 引导问答： 问：关键决策是什么？ 答：访华利好，选防守反击方案 问：有什么教训？ 答：半导体应更早止盈 问：效果评分？（1-5星） 答：4星 → 自动归档： - 写入历史归档表格 - 检查偏离度是否超20% - 超偏离 → 自动添加"调整计划"任务到下一阶段 → 一键滚动？(y/n) ``` ### 7. 计划暂停/冻结 ``` 用户：暂停这个计划 问：暂停原因？ 答：市场极端行情，暂停操作1周 问：自动恢复日期？（留空表示手动恢复） 答：5月25日 → 状态改为 paused → 心跳不再推送该计划进度 → 到期自动恢复或手动"恢复这个计划" ``` --- ## 计划模板库 ### 理财投资模板 ```markdown # 一年期理财计划 **目标**：资产增长XX% **策略**：定投+波段操作 **阶段**：建仓期（5天） - [ ] 设置每月定投参数 - [ ] 选定核心持仓基金 - [ ] 完成首次建仓 **触发器**： - 每天 12:30 推送进度 - 关键日期提前1天预警 **资产追踪**：（填写基金代码） ``` ### 学习考试模板 ```markdown # XX考试备考计划 **目标**：X月X日考试通过 **策略**：每日2小时+周末强化 **阶段**：基础期（7天） - [ ] 通读教材第一章 - [ ] 完成配套习题 - [ ] 记录错题本 **里程碑**： - X月X日 完成第一轮复习 - X月X日 模拟考试 ``` ### 项目推进模板 ```markdown # XX项目计划 **目标**：X周内完成MVP **策略**：敏捷迭代+每周复盘 **阶段**：开发期（5天） - [ ] 完成核心功能 - [ ] 编写单元测试 - [ ] Code Review **里程碑**： - X月X日 Alpha版本 - X月X日 Beta版本 ``` --- ## 容错与安全 | 机制 | 说明 | |------|------| | 文件并发安全 | 写入时加锁，用临时文件+rename | | 查重创建 | 同名计划不重复建 | | 自动备份 | 归档前备份 .bak 文件 | | 止损机制 | 连续2阶段完成率<30%提示终止 | | 触发器去重 | 避免重复注册相同触发器 | --- ## 自然语言匹配完成任务 支持模糊匹配，不需要精确匹配任务文字： ``` 用户：今天把定投设好了 → 匹配"设置每月定投参数"，自动勾选 ✅ 用户：阶段1的前两个都搞完了 → 批量匹配，自动勾选前两个待办 ✅ 用户：半导体那个卖了 → 匹配"半导体止盈 → 换中证500" ✅ 用户：全部完成了 → 批量勾选所有待办 ✅ 用户：xxx（匹配不到） → 返回候选列表： 1. 设置每月定投参数 2. 选定核心持仓基金 3. 完成首次建仓 请确认要完成哪个？ ``` **匹配策略**（按优先级）： 1. 完全包含匹配（100分） 2. 特殊规则匹配（"设好"→"设置"，"卖了"→"止盈"）（70-80分） 3. 关键词交叉匹配（50-80分） 4. 分数≥80自动完成，<80给候选列表 **批量语法**： - `前N个` — 完成前N个待办 - `所有/全部` — 完成所有待办 - `阶段X的任务` — 完成指定阶段的任务 --- ## 多计划关联 ### 创建关联 ``` 用户：理财计划和学习计划有关联 → 创建关联：一年理财计划 ~ 学习计划（关联关系） 用户：理财计划和旅游计划冲突（资金竞争） → 创建关联：一年理财计划 ⚡ 旅游计划（冲突关系） 用户：学习计划依赖项目经验 → 创建关联：学习计划 → 项目经验积累（依赖关系） ``` ### 关系类型 | 类型 | 符号 | 含义 | 自动检测 | |------|:---:|:---|:---:| | related-to | ~ | 有关联但无冲突 | 否 | | conflicts-with | ⚡ | 资源/时间竞争 | ✅ 同日多里程碑 | | depends-on | → | B依赖A完成才能启动 | ✅ 依赖不活跃 | | blocks | 🚫 | A阻塞B的进度 | 否 | ### 自动冲突检测 心跳时自动检测： - 🔴 **依赖缺失**：目标计划依赖的计划未激活 - 🟡 **资源竞争**：标记为conflicts-with的计划同时活跃 - 🟢 **日程冲突**：同一天有多个里程碑 - 🟢 **资产重叠**：多个计划同时涉及基金操作 ### 冲突报告 ``` 用户：检查计划冲突 ⚠️ 检测到 2 个冲突： 🟡 理财计划和旅游计划资金竞争 建议：建议暂停其中一个，或调整资金分配 🔴 学习计划依赖项目经验，但项目计划未激活 建议：请先激活项目计划或移除依赖关系 ``` ### 关联指令 | 指令 | 说明 | |------|------| | `关联 A和B` | 创建关联关系 | | `A和B冲突` | 创建冲突关系 | | `B依赖A` | 创建依赖关系 | | `取消关联 A和B` | 删除关联 | | `检查计划冲突` | 生成冲突报告 | --- *版本：v2.1.0* *创建：2026-03-29* *更新：2026-05-12 00:05* --- ## 实现说明 ### v2.0 已实现 - ✅ 心跳联动内置（触发器声明式配置） - ✅ 条件触发提醒（基金涨跌阈值检查） - ✅ 资产追踪集成（心跳自动更新净值） - ✅ 任务类型扩展（5种状态） - ✅ 里程碑系统（独立于阶段） - ✅ 计划暂停/冻结 - ✅ 结构化复盘 - ✅ 压力测试自动对比 - ✅ 日期计算内置 - ✅ 计划模板库（理财/考试/项目/健身） - ✅ 从上下文直接创建 - ✅ 文件并发安全（原子写入 tmp+rename） ### v2.1 新增（2026-05-12） - ✅ 自然语言匹配完成任务（模糊匹配+批量完成+候选确认） - ✅ 多计划关联（依赖/冲突/关联/阻塞 4种关系） - ✅ 自动冲突检测（依赖缺失/资源竞争/日程冲突/资产重叠）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)