Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/hexagon-codes/hexclaw-desktop/devtestopsnpx skills add hexagon-codes/hexclaw-desktop --skill devtestopsgit clone --depth 1 https://github.com/hexagon-codes/hexclaw-desktopWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00060 | $0.02323 |
| Opus 5 | $0.00030 | $0.01162 |
| Sonnet 5 | $0.00012 | $0.00465 |
| Haiku 4.5 | $0.00006 | $0.00232 |
Grade A, and why
devtestops scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 214 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DevTestOps 全流程质量保障
适用场景
当任务属于以下任一情况时,使用本 skill:
- 开始一个新需求/功能的开发,需要确定测试策略
- 代码开发完成,准备提测前的自检
- 需要判断当前变更需要哪些级别的测试
- 需要确认是否满足提测准入基线
- 上线前的最终检查清单
- 上线后的观察验收
不适用场景:
- 纯文档修改、注释调整等不涉及逻辑变更的场景
- 已有明确的测试方案且不需要重新评估时
核心原则
- 核心链路必须验证 — 主流程跑不通不能提测
- 高风险专项必须补充 — 不把所有专项都做成固定流程,但触发条件命中时必须做
- 提测准入有底线 — 基础项没过不进正式提测
- 上线不只看启动 — 要看接口、链路、日志、指标、告警
执行流程
Step 0:判断当前阶段
收到用户输入后,先判断当前处于哪个阶段:
| 用户意图 | 对应阶段 | 执行路径 |
|---|---|---|
| "分析需求""需求评审" | 阶段 1 需求澄清 | 执行 Step 1 |
| "设计方案""技术评审" | 阶段 2 方案与用例准备 | 执行 Step 2 |
| "写完了""自测""跑测试" | 阶段 3 基础质量验证 | 执行 Step 3 |
| "联调""集成测试""E2E" | 阶段 4 主链路验证 | 执行 Step 4 |
| "专项测试""性能测试" | 阶段 5 专项与性能 | 执行 Step 5 |
| "提测""准备提测""能提测吗" | 阶段 6 提测与回归 | 执行 Step 6(含准入检查) |
| "上线""发布""上线观察" | 阶段 7 上线与观察 | 执行 Step 7 |
| "生成测试用例" | 阶段 3 子任务 | 调用 /gen-testcases command |
| 不确定 | — | 先读代码和 git diff 判断变更范围,再推荐阶段 |
Step 1:需求澄清
开发侧:
- 需求范围明确,边界条件已定义
- 验收标准可量化、可测试
- 风险点已识别并记录
- 依赖项(外部接口、第三方服务)已确认
测试侧:
- 需求已分析,测试范围已圈定
- 高风险场景已标记
- 测试数据需求已明确
输出:需求澄清确认,可进入方案设计。
Step 2:方案与用例准备
开发侧:
- 接口设计已完成(入参、出参、错误码)
- 状态流转已定义
- 异常处理方案已明确
- 并发和回滚方案已考虑
测试侧:
- 测试计划已编写
- 测试用例已覆盖:主流程、异常流程、边界场景
- 用例已按优先级排序(P0 > P1 > P2)
输出:方案和用例就绪,可进入编码。
Step 3:基础质量验证
先判断变更类型,读取 test-levels.md 确定必须完成的测试级别。
执行顺序:
- 静态检查(lint / type check / build)
- 单元测试(核心逻辑的正常/异常/边界路径)
- 模块测试(组件 + 依赖的联动行为)
- 接口/API 测试(契约验证、参数校验、错误码)
生成测试用例:如需基于 PRD + 源码生成测试用例,执行 /gen-testcases command。
基础质量门禁:
- 编译/构建通过,无语法错误
- 静态检查通过(lint、type check)
- 单元测试通过,核心逻辑覆盖
- 模块测试通过,模块内交互正确
- 接口契约验证通过(如有接口改动)
输出:基础质量验证报告。低级错误已清除,可进入主链路验证。
Step 4:主链路验证
执行内容:
- 集成测试 / 联调:跨模块调用链跑通
- E2E 测试:从入口到最终结果的完整业务闭环
- 冒烟测试:核心路径快速验证
关键检查:
- 跨模块数据传递是否正确
- 状态流转是否完整(不只是 happy path)
- 降级/fallback 路径是否可用
- 错误传播是否正确(不吞错误、不误判)
输出:主链路验证通过,核心业务闭环可跑通。
Step 5:专项与性能
读取 specialized-tests.md,根据变更内容判断需要哪些专项测试。
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 214 lines · 60 tokens per session scan A 6c33f9aa7e2d
devtestops is a skill published in the GitHub repository hexagon-codes/hexclaw-desktop (23 stars, last pushed 2d ago), licensed Apache-2.0. It adds 60 tokens to every session and 2,323 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
custom-blocks
Use when the user has written (or wants to write) a ModularPipelineBlocks subclass in a local Python file and needs to package it into a Hub-uploadable directory. Covers the workflow from a single block.py file to a published custom-block repo that consumers can load via ModularPipeline.frompretrained( …
spotify-player
Terminal Spotify playback/search via spogo (preferred) or spotifyplayer. Use when the user asks to play music, search for a song, skip a track, pause playback, check what is currently playing, control Spotify, list audio devices, or manage a Spotify queue from the terminal.
vercel-react-view-transitions
Guide for implementing smooth, native-feeling animations using React's View Transition API ( component, addTransitionType, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components…
ha-skill-creator
Create, edit, improve, or audit Hope Agent skills. Use when the user wants to: (1) create a new skill from scratch, (2) edit or improve an existing skill, (3) review or clean up a SKILL.md file, (4) run evaluations to test skill effectiveness, (5) optimize skill descriptions for better trigger accuracy. Trigger…
ha-logs
Self-service diagnostics — query Hope Agent's local SQLite databases (logs / sessions / background jobs) directly via the exec tool to investigate problems, analyze usage, and locate root causes. Trigger on: user reports something broken / failing / slow / stuck / not responding ('X 不工作', 'X 报错', 'X 卡住', '为什么 X 失败'…
openai-whisper-api
Transcribe audio via OpenAI Audio Transcriptions API (Whisper).