ishvaproducts-png/ishvacerto
GitHub: ishvaproducts-png/ishvacerto
一款零依赖的本地代码验证工具,通过实际执行对 AI 生成的代码做出「已验证、已反驳(含确切失败输入)或弃权」的三值判定。
Stars: 0 | Forks: 0
# ishvacerto
[](https://pypi.org/project/ishvacerto/)
[](https://github.com/ishvaproducts-png/ishvacerto/actions/workflows/ci.yml)
[](LICENSE)
[](https://www.python.org)
[](pyproject.toml)
**证明你的 AI 编写代码——或者获得确切的破坏性输入。绝不含糊其辞。**
AI 编码助手速度很快,但它们也会交付充满自信的 bug 和幻觉行为。`ishvacerto` 是构建在它们之上的安全网:
给它一个函数以及一种检查方式(其自身的 doctest、你的测试或参考实现),它会返回以下三种答案之一——
**绝不返回听起来 plausible 的模棱两可答案**:
- ✅ **VERIFIED**(已验证)——它通过了 spec(带有 witness)。
- ❌ **REFUTED**(已反驳)——它失败了,并且这里是**确切的破坏性输入**。
- 🤷 **ABSTAIN**(弃权)——无法捕获可检查的 spec,因此它会如实说明,而不是盲目盖章通过。
它**完全在你的机器上运行。你的代码永远不会离开本地。**无需账号,无需云服务,无需遥测。纯标准
库——零依赖。
## 为什么需要
无法验证的代码建议就是一种隐患。`ishvacerto` 做了 LLM 在结构上无法做到的一件事:通过
执行来**证明或反驳**,当它无法做到时,它会选择**弃权**而不是虚张声势。它不与你的
AI 编码器竞争——它让其输出可以安全交付。
## 安装
```
pip install ishvacerto
```
## 使用
**针对代码自身的 doctest 进行验证:**
```
ishvacerto my_function.py
```
**在 Python 中:**
```
from ishvacerto import verify, verify_against_reference
verify(open("f.py").read()) # uses doctests if present
verify(code, tests=[("f(3)", "9"), "assert f(0) == 0"]) # against your tests
verify_against_reference(ai_code, known_good_code, "f") # where does the AI code diverge?
```
**差分测试——高杠杆模式(无需测试,只需参考实现):**
```
ishvacerto --ref reference.py --entry my_func ai_generated.py
```
`ishvacerto` 会生成输入,运行两者,并展示它们不一致的第一个输入。
**在 CI 中(REFUTED 时退出代码为 1):**
```
# .github/workflows/verify.yml
- run: pip install ishvacerto
- run: ishvacerto changed_function.py
```
## 示例
```
$ ishvacerto buggy.py
REFUTED [doctest] fn=square counterexample: square(3) (got 6, expected 9)
```
这就是 bug 所在——`square(3)` 返回了 `6`,而不是 `9`。不是“看起来可疑”。而是确切的失败输入。
## 它如何决策
- **VERIFIED** 仅在捕获的 spec 在它所能执行的每一个输入上都通过时才会返回。
- **REFUTED** 仅在明确的错误匹配时返回——并且它会告诉你具体的输入。
- **ABSTAIN** 在它无法捕获可用的 spec 时返回(这种原则使其避免了对优质代码的误报)。
差分运行在独立的进程中进行沙盒处理,并设有超时。该超时旨在防止挂起;它**不是**
针对恶意代码的安全沙盒——请验证你信任其来源的代码(例如你自己助手的输出),或者在
container 中运行它。
## License
MIT — 详情请见 [LICENSE](LICENSE)。
## 状态
`v0.1` ——验证或弃权的核心。正在开发中:更丰富的 spec 捕获(一个参考 *proposer*,使其能够覆盖
没有附带测试的代码)、更多的目标语言以及编辑器扩展。欢迎贡献。
标签:AI辅助编程, pocsuite3, Python, 代码验证, 无后门, 本地工具, 软件测试, 逆向工具