FrancyJGLisboa/devils-receipt
GitHub: FrancyJGLisboa/devils-receipt
一款基于证伪式开源情报的决策辅助工具,帮助用户系统性地发现与自身立场相悖的证据并附上可验证溯源凭证。
Stars: 0 | Forks: 0
# Devil 的收据
一个**针对你自己论点的预决策红队工具**。提出你所持的立场;你将获得反驳它的最强有力的*有证据支撑的*论述,并与支持的论述进行权衡,最终给出结论以及能改变你想法的具体触发条件。
它专门对抗头号决策失误——一直研究直到你感觉良好为止。它专为在*关键时刻*使用而生:在你确定交易规模、发布决策或坚持某个观点之前。一位魔鬼代言人(devil's advocate),带着凭证(url、日期、来源层级、逐字引用)而来,并保持诚实(它会权衡看跌的论点,而不是仅仅堆砌它们)。
诞生于 de Bono 的*扭曲*(Distortion)provocation——“先写下结论,然后收集证据来推翻它”——但它的输出是经过校准的,而非一边倒的:一个薄弱或空白的看跌论述同样是一个有效、诚实的结果。
## 工作原理
1. 一个论点转化为两组查询——**证伪**(核心工作)和少量**证实**(用于反向平衡)。
2. `devils-receipt` 通过内置的 **无密钥**(keyless)采集器(Google News、Reddit、Hacker News、GitHub)运行它们,进行去重,根据来源层级(`wire` / `unknown` / `junk` / `social` / `code`)对每一项进行标记,并写入 `evidence.json`。
3. 模型撰写备忘录:看跌论述(分层、已引用、已实现风险 vs 预期风险)→ *能改变我想法的*触发条件 → 反向平衡 → **结论**。
4. [`claimcheck`](https://github.com/FrancyJGLisboa/claimcheck) 验证日期是否在窗口期内,并签署防篡改凭证;子字符串检查确认每一条引用都是真实的。
无需 API 密钥。运行时仅依赖标准库(stdlib-only)——采集器是直接内置的,而非从其他地方导入。
## 安装
```
uv pip install -e . # runtime (stdlib-only, keyless)
uv pip install -e ".[dev]" # + tests + claimcheck (integrity gate, from GitHub)
```
## 使用
```
# 1. 收集反证
python -m devils_receipt \
--queries "safrinha corn drought damage;Brazil corn crop downgrade;Mato Grosso corn losses" \
--from 2026-05-25 --to 2026-06-25 --out evidence.json
# 2. (model 撰写 memo brief.md 引用候选者)然后:
claimcheck --prose brief.md --data evidence.json --window 2026-05-25,2026-06-25 --quotes
```
作为一项 Claude Code 技能,`SKILL.md` 驱动着整个循环——将它的软链接放入你的 skills 目录中,然后调用 `/devils-receipt "the thesis you hold"`。
## 损失函数
`evals/run_eval.py` 中的确定性检查:溯源(每一条引用均有来源)、无捏造(证据为空 ⇒ 备忘录不引用任何内容,但仍会给出结论)、凭证完整性(往返一致,篡改必定失败)、日期合理性(没有过时的引用)。
相关性和结论的校准是在真实的备忘录上进行实时评判的。
```
uv run pytest # unit tests for the dedup + provenance logic
uv run python evals/run_eval.py
```
## 许可证
MIT
标签:ESC4, OSINT, Python, 事实核查, 决策支持系统, 无后门, 自动化收集, 逆向工具