Install
openclaw skills install cowhorse-skillA skill that actively extracts and quantifies workflow requirements from users through structured Q&A about inputs, outputs, and objectives. Build reusable skills with scripts/references/assets. Use when user describes a task they want AI to help with repeatedly, e.g. "帮我做一个workflow", "建一个skill", "梳理流程", "帮我做一个工具", "把这个做成一个skill".
openclaw skills install cowhorse-skill主动询问用户的输入、输出和客观需求,通过迭代确认构建可复用的 workflow skill。
When user describes a task they want AI to support, actively lead the conversation — don't wait for the user to volunteer details. Ask the following questions one at a time, wait for each answer before proceeding.
每次必须问清楚以下所有维度:
| 维度 | 必问问题 |
|---|---|
| 数据来源 | 数据从哪来?文件、API、数据库、还是手动输入? |
| 文件格式 | 是 .xlsx / .csv / .json / .txt / 其他? |
| 文件位置 | 文件在哪?本地路径、网盘、飞书文档? |
| 数据结构 | 数据长什么样?有哪些列/字段?有表头吗? |
| 数据量 | 大概多少条/多少文件? |
| 数据质量 | 有脏数据吗?缺失值、格式不一致怎么处理? |
| 参数 | 需要用户传入什么参数?(筛选条件、时间范围、阈值等) |
追问策略: 如果用户说"一个Excel",必须追问:
每次必须问清楚以下所有维度:
| 维度 | 必问问题 |
|---|---|
| 产出形式 | 输出是文件、表格、图表、报告、还是直接执行动作? |
| 文件格式 | 输出什么格式?.xlsx / .pdf / .html / .png / 控制台打印? |
| 输出位置 | 输出到哪里?本地路径、飞书文档、邮件发送? |
| 输出内容 | 具体包含哪些信息?汇总数据、明细、统计指标? |
| 输出格式要求 | 有模板吗?需要特定排版、颜色、公式吗? |
| 输出粒度 | 是汇总还是明细?按什么维度分组? |
追问策略: 如果用户说"生成一个报表",必须追问:
核心原则:不假设,不猜测,不确定就问。
处理用户输入时:
After initial discovery, present a structured summary. 每个维度必须明确,不能留"待定"。
## 工作流需求确认
### 目标
[用户描述的目标 — 一句话概括]
### 输入规格
| 项目 | 详情 |
|------|------|
| 数据来源 | [文件路径 / API / 手动输入] |
| 文件格式 | [.xlsx / .csv / .json 等] |
| 数据结构 | [表头列名、数据类型] |
| 数据量 | [行数/文件数] |
| 输入参数 | [筛选条件、时间范围等] |
| 脏数据处理 | [缺失值/异常值策略] |
### 输出规格
| 项目 | 详情 |
|------|------|
| 产出形式 | [文件 / 报表 / 图表 / 动作] |
| 输出格式 | [.xlsx / .pdf / 控制台 等] |
| 输出位置 | [本地路径 / 飞书 / 邮件] |
| 输出内容 | [包含的字段/信息] |
| 排序/筛选 | [排序字段、筛选条件] |
| 统计计算 | [求和、平均、计数等] |
| 格式要求 | [模板、颜色、公式] |
### 流程步骤
1. [步骤1 — 明确输入→输出]
2. [步骤2]
...
### 约束条件
- [约束1]
- [约束2]
### 确认问题
1. 以上输入/输出规格是否正确?
2. 步骤顺序和依赖关系对吗?
3. 哪些步骤需要自动化,哪些保留手动?
4. 有遗漏的字段或规则吗?
Wait for user confirmation. Iterate until user says "确认" or "可以".
Once confirmed, build the skill:
scripts/init_skill.py from skill-creatorSkill structure:
skill-name/
├── SKILL.md (required)
├── scripts/ (optional)
│ ├── main_script.py
│ └── helpers.py
├── references/ (optional)
│ └── workflow_guide.md
└── assets/ (optional)
└── template.xlsx
After building:
scripts/package_skill.py from skill-creatorWhen processing user input for names, paths, or identifiers:
scripts/init_skill.py - From skill-creator, initialize new skillscripts/package_skill.py - From skill-creator, package skill to .skillreferences/workflow_guide.md - Detailed workflow patterns and examples