测试 use-self 替身会议的辩论质量。给定 persona + 3 个决策场景,运行完整三阶段辩论并按 5 个维度评分,输出质量报告。
npx skills add https://github.com/YIKUAIBANZI/forge-skill --skill eval-debate
你的任务是对 use-self 替身会议的输出质量做一次系统性评测,全程在当前对话中完成,不需要调用任何外部 API。
evals/test_cases/debate_quality_cases.yamlpersona_name 字段,读取对应 persona:personas/self/{persona_name}/persona.json
正在加载 {persona_name} 的 persona 和测试用例...
共 {N} 个决策场景待测试。
对每个测试用例,执行完整三阶段流程:
基于 decision-card 中的 L3 参数,生成 3 个变体并各自独立分析:
变体设置(固定,评测用):
每个变体按 use-self/prompts/phase1_independent.md 的格式输出:
信息隔离:每个变体只能看到自己的参数偏移,不知道其他变体说了什么。
将 Phase 1 的所有输出 + persona 的 L4 盲区交给质询视角,按 use-self/prompts/phase2_challenge.md 执行:
按 use-self/prompts/phase3_synthesis.md 生成综合报告,使用用户的 L2 语言风格。
每个场景跑完后,立刻按 5 个维度评分(每项 0-20 分):
| 维度 | 评分标准 |
|------|----------|
| 变体区分度 | Phase 1 的 3 个变体立场是否有实质性差异?都说"两边各有道理"= 0 分;立场明确对立且理由具体 = 满分 |
| 质询深度 | Phase 2 是否指出了具体假设和盲区?"你没考虑到..." = 低分;"你说的 X 假设了 Y,但 Y 不成立,因为 Z" = 高分 |
| 参数一致性 | 各变体的发言是否与偏移后的参数一致?稳健变体的发言是否明显更保守? |
| 综合覆盖度 | Phase 3 是否有代价清单?是否提出了具体的待搞清楚的问题?还是只是 Phase 1 的复述? |
| 用户语言风格 | 所有输出语气是否符合 persona 的 L2?出现"综上所述"、"建议您"等顾问句式扣分 |
参照测试用例的 expected_variant_stances 和 evaluation_criteria 给分。
所有场景跑完后,输出评测报告:
===================================
替身会议辩论质量评测报告 — {persona_name}
===================================
## 逐场景结果
### [d01] {场景标题}
**Phase 1 摘要:**
- 🔵 稳健的你:{判断一句话}
- 🟢 果断的你:{判断一句话}
- 🔴 长线的你:{判断一句话}
**Phase 2 质询摘要:**
{最有价值的一条质疑}
**Phase 3 综合摘要:**
{代价清单里最关键的一条}
**评分:{total}/100**
✅/⚠️ 变体区分度:{score}/20 — {说明}
✅/⚠️ 质询深度:{score}/20 — {说明}
✅/⚠️ 参数一致性:{score}/20 — {说明}
✅/⚠️ 综合覆盖度:{score}/20 — {说明}
✅/⚠️ 用户语言风格:{score}/20 — {说明}
### [d02] ...
### [d03] ...
---
## 汇总
平均分:{avg}/100
各维度平均:
变体区分度 {avg}/20
质询深度 {avg}/20
参数一致性 {avg}/20
综合覆盖度 {avg}/20
用户语言风格 {avg}/20
## 主要问题
{失分最多的维度 + 具体表现}
## 建议
{针对失分维度的改进方向,指向哪个 prompt 文件或 persona 层级需要调整}
要把这次结果存入 evals/results/ 吗?(y/n)
如果确认,写入 evals/results/debate_{YYYYMMDD}.md。
Use when testing the golden_chat golden build
Use when testing the golden_chat_empty golden build
Use when testing the golden_chat_single golden build
Use when testing the golden_chat_topics golden build
Hunt account takeover taxonomy — 9 distinct paths to ATO, plus chains. Paths: (1) password reset flaws (host-header injection redirects token, predictable/numeric token, Referer leak, no-expiry/reuse), (2) email change without re-auth, (3) OAuth account-link CSRF, (4) MFA bypass (per hunt-mfa-bypass), (5) session fixation, (6) JWT manipulation (forge token to another identity; crypto details → hunt-jwt-crypto), (7) password change without step-up (chain with login timing/length oracle), (8) social-recovery / security-question brute-force, (9) SSO subdomain takeover at OAuth redirect_uri. Chains: cookie theft + password oracle + no step-up = persistent ATO; lax redirect_uri = auth-code theft; dangling-CNAME takeover at redirect_uri = ATO. Validate: demonstrate real takeover of test account B from attacker A's session; OOB/Collaborator confirm blind token-leak steps. Use when hunting ATO chains, testing password reset / email change / MFA / OAuth / session / JWT, or chaining primitives toward Critical.
> Use this skill for hands-on DOCA Ethernet packet-queue work on a BlueField DPU or ConnectX NIC — bringing up a `doca_eth_rxq` or `doca_eth_txq` on a port / representor / SF, picking among the four `enum doca_eth_rxq_type` values (`_REGULAR` / `_CYCLIC` / `_MANAGED_MEMPOOL` / `_SHARED_MEMPOOL`), sizing burst or scatter-gather length against the `_cap_*` queries, submitting `doca_eth_txq_task_send` / `_lso_send` (carrying packet `doca_buf`s — no `doca_eth_frame` struct exists), or debugging DOCA_ERROR_* from an Ethernet call. Trigger on arrive", "send-task returns AGAIN at line rate", "which queue type for fixed-MTU ingress", "device open fails without sudo", or "is L3 checksum offload available here". Refuse and route elsewhere for installing DOCA, flow-rule / steering programming, host↔DPU control messaging, or RDMA data movement.
Use when the user asks to "build our social crisis protocol", "mentions are exploding — what do we do first", or "when do we pause the posting queue"; produces a 1-5 severity ladder with tunable Estimated trigger thresholds (mention-velocity multiples vs the 7-day listening baseline, sentiment flip, journalist/regulator contact, employee-conduct class), the first-mechanical-action rule — pause ALL scheduled posts AND paid amplification, with dated state markers dropped to the channels proposal protocol and reconciled post-incident — a pre-approved holding-statement library with committed update cadences, when-NOT-to-post rules, a spokesperson/approval matrix, and a post-crisis retro template; re-runs the social-quality-auditor pre-publish gate before un-pausing the queue. Not for email deliverability incidents (blocklist, spam-rate spikes) — use deliverability-qa; inside a launch window launch-day-conductor owns incident handling. 社媒危机预案/暂停队列/声明库/发言人矩阵
Use when the user asks to "test our messaging before we scale it", "design a message-market-fit panel", or "run a 5-second comprehension test on our new tagline"; produces a message-test design spec — hypothesis, panel and recruit criteria, comprehension / 5-second / message-market-fit (Wynter-style) protocols, stimulus set drawn from the canon, success thresholds, and a stop/revise decision rule — for the TALE Evaluate phase so the message is validated before any paid scale. It designs the test; it never runs the experiment or adjudicates a claim. Not for running the panel or A/B experiment — use send-experiment-designer or ad-test-designer; not for analyzing the results — use performance-analyzer; not for authoring the message itself — use message-system-architect. 消息测试/理解度测试/面板设计/五秒测试/消息市场契合
Take yikuaibanzi/eval-debate from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.