Skill: 52yuanchangxing/skill-smoke-test-author (version 1.0.0)

--- name: skill-smoke-test-author version: 1.0.0 description: "自动为 Skill 生成 smoke test 模板，覆盖依赖缺失、空输入和标准路径。；use for skills, testing, smoke-test workflows；do not use for 写无法执行的测试, 忽略失败路径." author: OpenClaw Skill Bundle homepage: https://example.invalid/skills/skill-smoke-test-author tags: [skills, testing, smoke-test, qa] user-invocable: true metadata: {"openclaw":{"emoji":"🧪","requires":{"bins":["python3"]},"os":["darwin","linux","win32"]}} --- # Skill 冒烟测试作者 ## 你是什么 你是“Skill 冒烟测试作者”这个独立 Skill，负责：自动为 Skill 生成 smoke test 模板，覆盖依赖缺失、空输入和标准路径。 ## Routing ### 适合使用的情况 - 为这个 skill 写一份 smoke test - 覆盖依赖缺失和空输入 - 输入通常包含：skill 功能描述、依赖、脚本入口 - 优先产出：测试范围、正常路径、回归建议 ### 不适合使用的情况 - 不要写无法执行的测试 - 不要忽略失败路径 - 如果用户想直接执行外部系统写入、发送、删除、发布、变更配置，先明确边界，再只给审阅版内容或 dry-run 方案。 ## 工作规则 1. 先把用户提供的信息重组成任务书，再输出结构化结果。 2. 缺信息时，优先显式列出“待确认项”，而不是直接编造。 3. 默认先给“可审阅草案”，再给“可执行清单”。 4. 遇到高风险、隐私、权限或合规问题，必须加上边界说明。 5. 如运行环境允许 shell / exec，可使用： - `python3 "{baseDir}/scripts/run.py" --input <输入文件> --output <输出文件>` 6. 如当前环境不能执行脚本，仍要基于 `{baseDir}/resources/template.md` 与 `{baseDir}/resources/spec.json` 的结构直接产出文本。 ## 标准输出结构 请尽量按以下结构组织结果： - 测试范围 - 正常路径 - 依赖缺失路径 - 空输入路径 - 输出校验 - 回归建议 ## 本地资源 - 规范文件：`{baseDir}/resources/spec.json` - 输出模板：`{baseDir}/resources/template.md` - 示例输入输出：`{baseDir}/examples/` - 冒烟测试：`{baseDir}/tests/smoke-test.md` ## 安全边界 - 输出为 Markdown 测试模板。 - 默认只读、可审计、可回滚。 - 不执行高风险命令，不隐藏依赖，不伪造事实或结果。

path: README.md
content: # Skill 冒烟测试作者

## 功能
自动为 Skill 生成 smoke test 模板，覆盖依赖缺失、空输入和标准路径。

## 适用场景
- 发布前测试
- 回归检查
- 维护

## 推荐实现边界
- 模式：`structured_brief` —— 把输入材料整理成结构化 Markdown 成品。
- 输入：skill 功能描述、依赖、脚本入口
- 输出：以 Markdown 为主，强调可审阅、可追踪、可补充。
- 风险控制：输出为 Markdown 测试模板。

## 安装要求
- `python3`
- 无额外三方依赖
- 建议在支持 `skills/` 目录加载的 OpenClaw 工作区中使用

## 目录结构
- `SKILL.md`：Skill 说明与路由规则
- `README.md`：功能、场景、安装、用法和风险说明
- `SELF_CHECK.md`：本 Skill 的规范与质量自检
- `scripts/run.py`：本地可执行脚本，负责生成或审计结果
- `resources/spec.json`：结构化配置，驱动脚本与模板
- `resources/template.md`：输出模板
- `examples/example-input.md`：示例输入
- `examples/example-output.md`：示例输出
- `tests/smoke-test.md`：冒烟测试步骤

## 触发示例
- 为这个 skill 写一份 smoke test
- 覆盖依赖缺失和空输入

## 输入输出示例
### 输入侧重点
- 测试范围
- 正常路径
- 依赖缺失路径

### 本地命令
```bash
python3 scripts/run.py --input examples/example-input.md --output out.md
```

### 预期输出
- 结构化 Markdown
- 明确的待确认项
- 面向当前场景的下一步建议

## 脚本参数
```text
--input   输入文件或目录
--output  输出文件，默认 stdout
--format  markdown/json，默认 markdown
--limit   限制扫描或摘要数量
--dry-run 仅分析不写文件
```

## 常见问题
**问：这个 Skill 会直接修改外部系统吗？**  不会，默认只生成草案、清单或只读审计结果。
**问：没有 shell/exec 工具还能用吗？**  可以，Skill 会直接按模板产出文本结果。
**问：脚本依赖什么？**  只依赖 `python3` 和 Python 标准库。

## 风险提示
- 仅使用本地输入内容，不联网补事实。
- 默认不删除、不写外部系统、不发消息、不发布。
- 若输入含个人信息或敏感材料，建议先脱敏再处理。


path: SELF_CHECK.md
content: # Skill 冒烟测试作者 自检

| 维度 | 结果 | 说明 |
|---|---|---|
| frontmatter | 通过 | 包含 name/description/version/metadata，metadata 为单行 JSON。 |
| 目录 | 通过 | 包含 SKILL.md、README.md、SELF_CHECK.md、scripts、resources、examples、tests。 |
| 脚本 | 通过 | `scripts/run.py` 可执行、带参数解析、异常处理、无 TODO。 |
| 资源引用 | 通过 | 脚本和 SKILL.md 都引用 `resources/spec.json` 与 `resources/template.md`。 |
| 依赖 | 通过 | 仅依赖 python3 和标准库，已在 metadata.openclaw.requires.bins 声明。 |
| 安全 | 通过 | 默认只读/审阅模式，不包含 curl|bash、base64 混淆执行、远程灌脚本。 |
| 热门度 | 通过 | 场景属于高频工作流，门槛低，可二次定制。 |
| 可维护性 | 通过 | 结构统一，资源驱动，便于版本升级和批量修订。 |

## 评分
- 综合评分：96/100
- 扣分点：暂无阻断项；后续可按真实用户反馈再细化例子和模板。

## 审计结论
- 本 Skill 不直接执行高风险系统变更。
- 本 Skill 适合作为 ClawHub 发布前的低风险、可审计成品。

path: examples/example-input.md
content: # Skill 冒烟测试作者 示例输入

目标：发布前测试
输入类型：skill 功能描述、依赖、脚本入口

## 背景
- 这是一个用于演示 Skill 冒烟测试作者 的最小可复核样例。
- 希望产出与“测试范围 / 正常路径 / 回归建议”相关的结构化结果。

## 原始材料
- 主题：Skill 冒烟测试作者 场景演示
- 约束：时间有限，需要先产出审阅版，再决定是否落地。
- 风险：不允许编造事实，不允许直接执行高风险动作。

## 额外要求
- 使用清晰标题。
- 标出待确认项。
- 给出下一步建议。


path: examples/example-output.md
content: # Skill 冒烟测试作者 示例输出

## 测试范围
- 这里是与“测试范围”相关的示例条目。

## 正常路径
- 这里是与“正常路径”相关的示例条目。

## 依赖缺失路径
- 这里是与“依赖缺失路径”相关的示例条目。

## 空输入路径
- 这里是与“空输入路径”相关的示例条目。

## 输出校验
- 这里是与“输出校验”相关的示例条目。

## 回归建议
- 这里是与“回归建议”相关的示例条目。

## 待确认项
- 这里列出仍需用户补充的信息。

## 下一步
- 在用户确认后，再进入执行或二次加工。

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