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 skills add Kokxi/qa-test-skills --skill qa-shift-leftgit clone --depth 1 https://github.com/Kokxi/qa-test-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kokxi/qa-test-skills/qa-shift-left)<a href="https://agentmods.dev/skills/kokxi/qa-test-skills/qa-shift-left"><img src="https://agentmods.dev/badge/skills/kokxi/qa-test-skills/qa-shift-left/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kokxi/qa-test-skills/qa-shift-left"><img src="https://agentmods.dev/badge/skills/kokxi/qa-test-skills/qa-shift-left.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What 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.1 | $0.00134 | $0.02289 |
| Opus 5 | $0.00067 | $0.01144 |
| Sonnet 5 | $0.00027 | $0.00458 |
| Haiku 4.5 | $0.00013 | $0.00229 |
Grade A, and why
qa-shift-left 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 3d 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 — 255 lines — stays where its author put it; the contents beside it link to each section on GitHub.
测试左移实践
核心原则
测试左移——越早发现缺陷,修复成本越低。
左移阶段
阶段1:需求阶段
测试活动:
├─ 需求评审
│ ├─ 参与需求评审会议
│ ├─ 从测试角度提出问题
│ ├─ 识别需求不清晰/矛盾点
│ └─ 评估需求可测试性
│
├─ 验收标准
│ ├─ 协助定义验收标准(AC)
│ ├─ 确保AC可测试、可自动化
│ ├─ 明确输入/输出/边界
│ └─ 识别隐含需求
│
└─ 可测试性评估
├─ 评估接口是否可Mock
├─ 评估日志是否可追踪
├─ 评估配置是否可动态
└─ 评估数据是否可构造
阶段2:设计阶段
测试活动:
├─ 架构评审
│ ├─ 评估系统架构可测试性
│ ├─ 识别测试难点
│ ├─ 建议可测试设计
│ └─ 评估依赖服务Mock方案
│
├─ 接口设计评审
│ ├─ 评估接口设计合理性
│ ├─ 确认接口文档完整性
│ ├─ 评估错误码设计
│ └─ 评估版本兼容性
│
└─ 数据库设计评审
├─ 评估表结构设计
├─ 评估索引设计
├─ 评估数据迁移方案
└─ 评估数据一致性
阶段3:开发阶段
测试活动:
├─ 代码评审
│ ├─ 从测试角度Review代码
│ ├─ 识别潜在Bug模式
│ ├─ 评估异常处理
│ └─ 评估日志记录
│
├─ 单元测试支持
│ ├─ 协助开发设计测试用例
│ ├─ 提供测试数据建议
│ ├─ 验证单元测试覆盖
│ └─ 评审单元测试质量
│
└─ 接口测试
├─ 编写接口测试用例
├─ 验证接口契约
├─ 测试接口边界条件
└─ 执行接口自动化测试
需求可测试性
验收标准模板
## 验收标准(AC)
### 功能描述
[功能的简要描述]
### 验收条件
- [ ] 条件1:[具体条件]
- [ ] 条件2:[具体条件]
- [ ] 条件3:[具体条件]
### 输入
- 正常输入:[示例]
- 异常输入:[示例]
- 边界输入:[示例]
### 输出
- 正常输出:[预期结果]
- 异常输出:[错误信息]
- 边界输出:[边界处理]
### 验证方法
- [ ] 手动测试
- [ ] 自动化测试
- [ ] 接口测试
可测试性检查清单
接口层:
├─ [ ] 接口是否可Mock?
├─ [ ] 接口是否有测试接口?
├─ [ ] 接口文档是否完整?
└─ [ ] 接口版本是否管理?
数据层:
├─ [ ] 数据是否可构造?
├─ [ ] 数据是否可清理?
├─ [ ] 数据是否可查询?
└─ [ ] 数据是否可隔离?
日志层:
├─ [ ] 关键路径是否有日志?
├─ [ ] 日志级别是否合理?
├─ [ ] 是否有TraceId?
└─ [ ] 日志是否可查询?
配置层:
├─ [ ] 功能开关是否支持?
├─ [ ] 配置是否可动态修改?
├─ [ ] 测试配置是否独立?
└─ [ ] 配置变更是否有记录?
代码评审检查点
测试视角的CR
检查点:
├─ 业务逻辑
│ ├─ 条件判断是否正确?
│ ├─ 边界条件是否处理?
│ ├─ 异常情况是否考虑?
│ └─ 数据校验是否完整?
│
├─ 异常处理
│ ├─ 异常是否捕获?
│ ├─ 异常信息是否明确?
│ ├─ 异常恢复是否实现?
│ └─ 异常日志是否记录?
│
├─ 日志记录
│ ├─ 关键操作是否有日志?
│ ├─ 日志级别是否合理?
│ ├─ 敏感信息是否脱敏?
│ └─ TraceId是否传递?
│
└─ 性能影响
├─ 是否有N+1查询?
├─ 是否有内存泄漏风险?
├─ 是否有并发问题?
└─ 是否有性能瓶颈?
单元测试支持
单元测试检查清单
覆盖率:
├─ [ ] 核心逻辑覆盖?
├─ [ ] 分支覆盖?
├─ [ ] 边界覆盖?
└─ [ ] 异常覆盖?
质量:
├─ [ ] 测试命名清晰?
├─ [ ] 测试职责单一?
├─ [ ] 测试独立运行?
├─ [ ] 测试快速执行?
└─ [ ] 测试可维护?
输出示例
团队在需求评审阶段参与不足,导致上线后频繁需求变更 → 左移实践:
- 需求阶段:参与需求评审,定义验收标准(AC),推动可测试性检查
- 设计阶段:测试视角参与技术方案评审,识别设计缺陷
- 开发阶段:推动单元测试覆盖率,执行测试视角代码评审
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.
- 3d ago Changed 10f476a047cb
- 9d ago First seen · 255 lines · 134 tokens per session scan A 887ae13a6a9d
qa-shift-left is a skill published in the GitHub repository Kokxi/qa-test-skills (24 stars, last pushed 6d ago), licensed MIT. It adds 134 tokens to every session and 2,289 once invoked, about $0.0007 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
agent-harness-fault-injection
Use when an agent workflow needs deterministic recovery evidence for sandbox, MCP/tool, worker, checkpoint, memory, or orchestration failures.
octocode-benchmark
Use when planning, running, grading, or reporting the by-hand Octocode research benchmark — pairwise matchups (Octocode anchor vs one baseline: gh+RTK, gh+Headroom, or plain gh) over markdown questions, with a fresh isolated runner agent per (question, arm, pass), one blind judge per question grading two answers X/Y…
octocode-graph-eval
Use when you need a measurable keep/discard loop — goal→KPI, baseline vs target, held-out checks, eval suites, or don't-stop-till-done against a runnable sensor. Not for ordinary ship checks where 'tests passed' is enough.
plugin-test
A testing guide for Zhin.js plugins using Vitest, a JavaScript and TypeScript testing framework. It focuses on checking command and tool behavior, ordinary business logic, and the plugin package’s required structure.
modernize-test-starter
Modernize QUnit unit tests and OPA5 integration tests to the UI5 Test Starter concept. Use this skill when: The linter reports prefer-test-starter for .qunit.html or .qunit.js files Test HTML files use manual sap-ui-core.js bootstrapping instead of Test Starter's runTest.js/createSuite.js Test JS files use…
javascript-development
JavaScript/TypeScript ES2024+, async/await, DOM manipulation, Node.js, and API integration. Use when writing vanilla JS/TS code, working with REST/fetch APIs, implementing frontend logic, or configuring JS build tools.