High Risk:This skill has significant security concerns. Review the findings below before installing.

stp

Caution·Scanned 2/18/2026

Dangerous skill: instructs unrestricted shell command execution via exec and shows writing/attaching arbitrary files such as /tmp/step_exec.log to logs. It implements structured task planning that creates and writes to ~/.openclaw/workspace/tasks and ~/.openclaw/workspace/tasks/.task_counter.

from clawhub.ai·v2f437a3·24.3 KB·0 installs
Scanned from 1.0.1 at 2f437a3 · Transparency log ↗
$ vett add clawhub.ai/scotthuang/stpReview security findings before installing

路径变量说明(本文档通用):

  • <STP_ROOT> = ~/.openclaw/workspace/skills/stp
  • <STP_SCRIPTS> = <STP_ROOT>/scripts
  • <STP_TASK_LIST> = ~/.openclaw/workspace/task-list
  • <STP_TASKS> = ~/.openclaw/workspace/tasks

STP(Structured Task Planning)结构化任务规划与分步执行

功能概述

  1. 任务解析:从 Markdown 任务文档加载步骤
  2. 目录管理:自动创建任务专属目录(格式:task-{ID}
  3. 文档生成:生成标准化步骤文档和执行日志
  4. 状态跟踪:支持步骤状态标记(待执行/成功/失败)
  5. 智能执行:每个步骤作为子任务执行,附带成功判断标准
  6. 快速失败:步骤失败立即终止,不尝试替代方案
  7. 完整日志:所有 exec 命令和 AI 执行过程完整记录

两种使用模式

模式 A:文件模式(原有)

用户提供写好的任务文档路径:

/stp /path/to/task.md

模式 B:自然语言模式(新增)

用户用自然语言描述任务:

/stp 我想查一下腾讯、贵州茅台、Meta 的股票价格

模式 B:自然语言任务规划流程

当用户输入的不是 .md 文件路径,而是自然语言描述时,执行以下流程:

第一步:任务分析与计划生成

  1. 理解用户意图:分析自然语言,明确任务目标
  2. 拆解执行步骤:将任务分解为可执行的具体步骤
  3. 生成计划书:按标准格式生成 Markdown 任务文档

第二步:确认循环

  1. 展示计划书:将生成的计划书完整展示给用户
  2. 询问确认
    📋 任务计划书已生成,请确认:
    - 输入 "ok" 或 "确认" → 开始执行
    - 输入修改意见 → 我会调整计划后重新展示
    - 输入 "取消" → 放弃此任务
    
  3. 修改循环:如果用户有修改意见,调整计划书后重新展示,直到用户确认

第三步:保存并执行

  1. 生成文件名:基于任务内容生成简短文件名(如 stock-query.md
  2. 保存位置<STP_TASK_LIST>/<filename>.md
  3. 开始执行:按原有 STP 流程执行任务

计划书标准格式

# 任务名称

## 任务描述
用户原始需求的简要描述

## 技术方案
- 使用的工具/库/API
- 关键技术约束

## 核心执行步骤
- [ ] 步骤 1:具体描述(含成功标准)
- [ ] 步骤 2:具体描述(含成功标准)
- [ ] 步骤 3:具体描述(含成功标准)

## 预期产出
- 输出文件/结果说明

示例流程

用户输入

/stp 我想查一下腾讯、贵州茅台、Meta 的股票价格

Agent 生成计划书

# 三支股票收盘价查询

## 任务描述
查询腾讯控股、贵州茅台、Meta 三支股票的最新收盘价

## 技术方案
- 使用 AkShare 库查询股票数据
- 支持 A股(沪深)、港股、美股三个市场

## 核心执行步骤
- [ ] 步骤 1:编写基于 AkShare 的股票查询脚本,保存至 `temp/scripts/stock_query.py`
- [ ] 步骤 2:查询贵州茅台(600519.SH)收盘价
- [ ] 步骤 3:查询腾讯控股(00700.HK)收盘价
- [ ] 步骤 4:查询 Meta(META.O)收盘价

## 预期产出
- 三支股票的收盘价信息(股票名称、代码、日期、价格、市场)

Agent 询问

📋 任务计划书已生成,请确认:
- 输入 "ok" 或 "确认" → 开始执行
- 输入修改意见 → 我会调整计划后重新展示
- 输入 "取消" → 放弃此任务

用户确认后

  • 保存到 <STP_TASK_LIST>/<任务描述>-<日期>.md
  • 开始执行 STP 任务流程

Agent 执行规范(重要!)

执行每个步骤时,必须记录关键命令和输出:

方法:步骤完成后补记执行日志

  1. 执行步骤时:正常用 exec tool 执行命令
  2. 步骤完成后:把关键命令和输出写入临时文件,然后用 --exec-file 记录
# 1. 先把执行记录写入临时文件
cat > /tmp/step_exec.log << 'EOF'
[命令1] python3 -c "import akshare; print(akshare.__version__)"
[输出1] AkShare version: 1.18.22
[退出码] 0

[命令2] python3 stock_query.py 600519.SH
[输出2] 贵州茅台 收盘价: 1515.01
[退出码] 0
EOF

# 2. 记录步骤状态时附带执行日志
python3 execute_task.py --log task-8 1 success "脚本执行成功" --exec-file /tmp/step_exec.log

执行日志格式建议

[命令] <执行的完整命令>
[输出] <命令输出(可截断关键部分)>
[退出码] <0=成功, 非0=失败>

模式 A:文件模式使用方式

步骤1:准备 Markdown 任务文档

# 任务名称

## 核心执行步骤
- [ ] 步骤 1:具体描述
- [ ] 步骤 2:具体描述
- [ ] 步骤 3:具体描述

步骤2:生成任务目录和步骤文档

python3 <STP_SCRIPTS>/execute_task.py --task-file /path/to/task.md

任务目录命名规则task-{自增ID}

  • 使用 .task_counter 计数器文件记录自增ID
  • 目录示例:task-1/task-2/task-3/

步骤3:查看生成的文档

任务目录结构:

tasks/
└── task-XXX/
    ├── task_steps.md      # 步骤文档(含状态标记和成功标准)
    ├── task_execution.log # 完整执行日志(含所有exec命令)
    ├── result.txt         # 结果汇总
    └── temp/
        ├── scripts/
        └── downloads/

步骤4:执行步骤并更新状态

主 Agent 读取 task_steps.md,逐个执行步骤,然后更新状态标记:

  • [ ](执行成功)
  • [ ](执行失败)

状态标记

标记含义
[ ]待执行
执行成功
执行失败(任务终止)

执行规则(重要!)

1. 原方案优先原则

必须严格按照任务文档中定义的方案执行,禁止擅自更改实现方式。

示例:

❌ 错误做法:原方案要求用 AkShare,实际改用新浪 API
✅ 正确做法:严格使用 AkShare,遇到问题按失败处理

2. 快速失败策略

原则:一步到位,不做替代方案尝试

  • 子任务返回「失败」状态 → 立即终止整个任务链
  • 不自动重试、不尝试其他实现方式
  • 记录失败原因到日志

3. 失败处理

  • 方案执行失败 → 立即终止,不尝试替代方案
  • 明确记录失败原因(违反方案/技术限制/接口问题)
  • 任务结果标记为 FAILED

资源

scripts/

  • execute_task.py - 主脚本
    • 解析任务文档并生成步骤文件
    • 管理 .task_counter 自增ID
    • 支持 --subtask 模式:生成子任务 prompt
    • 支持 --exec-file 参数:附带执行日志
    • 自动记录 exec 命令到日志

task-list/

  • 存放自然语言模式生成的任务计划书
  • 路径:<STP_TASK_LIST>
  • 文件命名格式:<简短描述>-<日期>.md

注意stpstructured-task-planning 的缩写。