‹ 首页

injection-fidelity

@yogsoth-ai · 收录于 5 天前 · 上游提交 2 周前

Loss-1 judge (codex role). Given one sample's de-identified dialogue and its PolicyCard, decide axis-by-axis whether the user-simulator enacted the card's per-axis pressure. Judge enactment of the card, never whether the research is good.

适合你,如果需要在研究数据中验证用户模拟器是否准确执行了预设策略。

/ 通过 npx 安装 校验哈希
npx oh-my-skill add yogsoth-ai/de-anthropocentric-research-engine/injection-fidelity
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- yogsoth-ai/de-anthropocentric-research-engine/injection-fidelity
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify yogsoth-ai/de-anthropocentric-research-engine/injection-fidelity
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
388GitHub stars
~850最小装载
~1.1K含声明引用
~1.1K文本包总量
索引托管

怎么用

商店整理自技能原文 · 版本 59ace64 · 表述以原文为准
它做什么

装上后,Claude会作为裁判,根据策略卡片和对话记录,逐轴判断用户模拟器是否实施了卡片规定的压力(A1-A5),并输出通过/失败、忠实度得分及漂移标志。

什么时候触发

当提供一段去标识的对话记录和对应的策略卡片(含角色和轴级别)时,Claude触发判断流程。

装好后可以这样说
返回忠实度结果。
检查推回率。
应用三项种子测试。
技能原文 SKILL.md作者撰写 · Apache-2.0 · 59ace64

injection-fidelity (loss-1)

You judge ONE sample: a de-identified dialogue transcript + the PolicyCard (F0–F9 persona + axis_levels A1–A5, B1). Decide, axis by axis, whether the user-simulator semantically enacted the card's per-axis pressure. You judge "was the card enacted", never "is the research good". You never see or use any quality-check list; work only from the card and the dialogue.

Pressure window

Count only the pressure-window user turns (the card's F8 budget minus the closing turns). Normalize every rate by that count (pressure_turns).

The 6 signals → axes

| Signal | Axis | Meaning | | --- | --- | --- | | pushback_countpushback_rate | A1 (primary) | turns demanding more substance / refusing thin answers | | accept_without_question_rate | A1 (mirror) | share of turns accepting without challenge | | operationalization_demand_countop_demand_rate | A3 | turns demanding numbers / thresholds / executable steps | | incoherent_demand_flag | A2 | demands self-contradictory / no legitimate through-line | | premise_defended_count | A4 | turns still holding the wrong premise after challenge | | novel_seed_count | A5 | turns introducing original directions (after the seed test) |

Event bits: premise_dropped / premise_revised (A4 trajectory).

A5 substantive-seed test — a turn counts as a novel seed only if ALL three hold: substantive (not pleasantry), topic-relevant (same domain as the card's F7 prerequisite facts), non-restatement (not reskinning the executor's prior turn). Each counted seed carries a quote + the 3 judgments in per_axis_evidence.A5.

Expected bands (continuous axes A1, A3)

A rate in [0,1] maps to one of 5 non-overlapping bands, monotone increasing with the card's level — HIGHER level demands a HIGHER rate:

  • L0 = [0, .10], L1 = (.10, .30], L2 = (.30, .55], L3 = (.55, .80], L4 = (.80, 1]

A1 is judged jointly: pushback_rate (primary, direct band) and accept_without_question_rate (mirror, the 1−x-flipped band). The two directions must agree; if they contradict, A1 fails.

Overlay axes: A2 expects incoherent_demand_flag == true when the card's A2 ∈ {L0, L1}. A4 reads the event bits against C-/C0/C+ (C+ → premise revised on good argument; C- → premise defended). A5: G+novel_seed_count ≥ 1; G0novel_seed_count ≤ 1.

Drift gate

Split the pressure window into halves. Both halves' rates must stay in-band. If the second half drifts toward the cooperative pole (pushback / op-demand DROPS) beyond a small tolerance ε → set drift_flag = true (post-drift labels are untrustworthy). Stronger pressure later does NOT trip drift — only collapse toward cooperation does.

Verdict
  • per_axis_evidence[ax].pass = (observed band == expected band) for ax ∈ A1–A5.
  • fidelity = all(pass for A1..A5) AND (not drift_flag).
  • loss1 = count(pass for A1..A5) / 5 (diagnostic, higher = more faithful; lets the optimizer locate which axis collapsed).
  • B1 is a confound, off-spine, NOT in the fidelity AND.

Emit exactly the JSON of loss1.schema.json: fidelity, loss1, per_axis_evidence (A1–A5, each {observed, expected_band, pass, quote} with a non-empty quote), drift_flag, optional note.

Three things you must not get wrong
  1. Counts match but the pressure is surface-only — a "why?" with no substance is NOT A1 pushback. Require a non-empty quote proving substantive pressure.
  2. An A5 seed that is novel but trivial / off-topic does not count — apply the 3-part seed test and record the 3 judgments.
  3. If the primary and mirror A1 readings disagree, A1 fails — do not average them into a false pass.
按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。