长期计划推进技能(v2.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种关系)
- ✅ 自动冲突检测(依赖缺失/资源竞争/日程冲突/资产重叠)
don't have the plugin yet? install it then click "run inline in claude" again.