长期计划推进

Productivity
资产

长期计划推进技能(v2.0)。支持心跳联动内置、条件触发提醒、资产追踪、里程碑系统、多任务状态。当用户说"开一个长期计划"、"今天计划任务"、"阶段复盘"、"滚动下一阶段"、"列出所有计划"时使用。

Install

openclaw skills install @141553/long-term-plan

长期计划推进 v2.0

核心理念

滚动节点式规划:每 3-5 天为一个阶段,阶段结束时复盘,再滚动规划下一阶段。

v2.0 新特性

  • 心跳联动内置:计划文件声明触发器,自动注册提醒
  • 条件触发提醒:当基金涨跌/指数到达阈值时触发
  • 资产追踪集成:引用基金代码,心跳自动更新净值
  • 任务类型扩展:待办/待决策/条件触发/进行中/已完成
  • 里程碑系统:独立于阶段的关键节点
  • 计划暂停冻结:支持中间状态
  • 日期自动计算:进度、剩余天数、复盘日自动维护

极简指令

指令说明
开一个长期计划创建新计划(引导式问答)
开一个长期计划(理财模板)用理财模板创建
开一个长期计划(从上下文)从当前对话信息直接创建
今天计划任务显示当天所有计划的今日任务
我完成了xxx自动勾选对应任务
阶段复盘自动统计 + 生成复盘 + 归档
滚动下一阶段生成新阶段模板
列出所有计划展示所有计划状态
暂停这个计划暂停(心跳不再推送)
恢复这个计划恢复暂停的计划
结束这个计划标记完成 + 归档

文件结构

memory/tasks/
├── index.json              # 计划列表索引 + 资产快照
├── {task-name}-plan.md     # 具体计划文件
└── {task-name}-triggers.json  # 触发器配置(自动生成)

计划文件模板 v2.0

# {任务名}

**状态**:进行中 | **开始**: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

{
  "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. 触发器自动注册

计划创建后,自动执行:

// 解析计划文件中的触发器
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. 条件触发检查逻辑

// 心跳时检查条件触发
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. 资产追踪更新

// 心跳时更新资产快照
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
→ 心跳不再推送该计划进度
→ 到期自动恢复或手动"恢复这个计划"

计划模板库

理财投资模板

# 一年期理财计划

**目标**:资产增长XX%
**策略**:定投+波段操作

**阶段**:建仓期(5天)
- [ ] 设置每月定投参数
- [ ] 选定核心持仓基金
- [ ] 完成首次建仓

**触发器**:
- 每天 12:30 推送进度
- 关键日期提前1天预警

**资产追踪**:(填写基金代码)

学习考试模板

# XX考试备考计划

**目标**:X月X日考试通过
**策略**:每日2小时+周末强化

**阶段**:基础期(7天)
- [ ] 通读教材第一章
- [ ] 完成配套习题
- [ ] 记录错题本

**里程碑**:
- X月X日 完成第一轮复习
- X月X日 模拟考试

项目推进模板

# 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-onB依赖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种关系)
  • ✅ 自动冲突检测(依赖缺失/资源竞争/日程冲突/资产重叠)