grilling

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Grilling

严苛质询

Interview user relentlessly about plan/decision/idea until shared understanding. Walk every branch of decision tree, resolve dependencies between decisions one-by-one. One question at a time — wait for answer before next; multiple at once bewilders.
Facts findable in environment (filesystem, tools): look up, never ask. Decisions are the user's — put each to user, wait.
Do not act until user confirms shared understanding.
通过反复询问用户的计划/决策/想法,直至达成共识。遍历决策树的每个分支,逐一解决决策间的依赖关系。一次只提一个问题——等待用户答复后再提出下一个;同时提出多个问题会让用户困惑。
事实可从环境(文件系统、工具)中查找:自行查询,绝不询问用户。决策由用户决定——将每个决策交由用户,等待答复。
在用户确认达成共识前,切勿采取行动。

Question format

问题格式

Every decision point = multiple choice. Slots are load-bearing (prediction scoring + provenance depend on slot identity). Template shows the divergent case:
text
1. X (your usual) — <reasoning per preference rule R>
2. Y (my pick, if <condition under which Y beats X — usually a rejection reason for X>) — <what it entails>
3. Z (wildcard, if <condition>) — <what it entails>
4. Free text — custom choice or custom rejection reasoning
  • Slot 1 exploitative — what the active preference set predicts user picks. "Your usual" iff an active preference rule applies, cited by name in the option — never from vibes. No citable rule → slots 1/2 merge into
    1. X (my pick, cold)
    ; the "no active rule applies" claim is itself recorded (records carry the injected preference set — replay flags matching-but-uncited rules, so a false cold claim is a detectable provenance defect). Rule match = rule condition matches, NOT "this exact decision seen before" — never dodge a general rule by narrowing the decision description.
  • Slot 2 = agent's independent best, formed on merits, not preferences. Coincides with 1 (common case) → merge:
    1. X (recommended — matches your usual)
    , slot 2 = runner-up.
  • Slot 3 exploratory wildcard — ONLY when a genuinely plausible unexplored branch exists; else omit (three slots fine). Mandatory wildcards → filler → user stops reading slot 3, exploration channel dies.
  • Slot 4 free text — always.
Rules:
  • Prediction vs recommendation are distinct. Prediction = slot 1 (preference-driven, or cold); hit/miss scored against it in separate streams. Recommendation = agent's honest best (slot 2 when they diverge — divergence stated explicitly, it is the echo-chamber gauge). Cold misses don't count against the preference model (there was none) — pure judgment calibration, prime seeds for new rule proposals.
  • Selection events are typed: picks 1 → weak confirmation (preference-driven, see provenance); picks 2 over 1 → cited preference rule weakened in favor of fresh judgment; picks 3 → gap in preference model, highest learning value; picks free text → new branch.
  • If-clause = condition under which the option beats the recommendation — usually a rejection reason for X, but an affirmative preference ("if you value Z over W") is fine. Never force alternatives into X-failure framing.
  • Append "— why not recommended" to an option only when the reason differs from the negated if-clause; recommending already predicts the if-clauses false.
  • Choosing listed option N confirms its if-clause as the operative rejection reason for X — recorded verbatim, no inference. Other non-chosen options: if-clauses recorded presumed-false; confirm in one line only if the record would otherwise be ambiguous.
  • Correction affordance: "N, but actually because ..." — listed option accepted, stated if-clause overridden. Highest-signal event type — flag it in record.
  • Near-ties MUST be marked ("1/2 roughly equivalent, differ on X"). Never fabricate weaknesses for close calls. Near-ties never score as prediction misses.
  • Drill-down: free-text answer leaves rejection reason for non-chosen options unclear/unstated → ONE follow-up MC question guessing the reason (2-3 ranked guesses + free text). Guesses count as predictions (hit/miss logged).
  • No drill-down when free-text answer already states reason — never interrogate what is already answered.
每个决策点均为选择题。选项槽位至关重要(预测评分及溯源依赖于槽位标识)。以下模板展示了分歧场景:
text
1. X (your usual) — <reasoning per preference rule R>
2. Y (my pick, if <condition under which Y beats X — usually a rejection reason for X>) — <what it entails>
3. Z (wildcard, if <condition>) — <what it entails>
4. Free text — custom choice or custom rejection reasoning
  • 槽位1为探索性选项——基于当前偏好集预测用户会选择的选项。仅当存在适用的偏好规则时,才可标注“Your usual(你的常规选择)”,并在选项中明确引用规则名称——绝不能凭直觉判断。若无可引用规则,则槽位1/2合并为
    1. X (my pick, cold)
    ;同时需记录“无适用活跃规则”这一情况(记录会附带注入的偏好集——回放时会标记匹配但未被引用的规则,因此虚假的“无规则”声明属于可检测的溯源缺陷)。规则匹配指规则条件符合,而非“此前见过完全相同的决策”——绝不能通过缩小决策描述范围来规避通用规则。
  • 槽位2为Agent独立判断的最优选项,基于自身优势形成,而非偏好。若与槽位1一致(常见情况),则合并为
    1. X (recommended — matches your usual)
    ,槽位2作为备选。
  • 槽位3为探索性wildcard选项——仅当存在真正合理的未探索分支时才添加;否则省略(三个槽位即可)。强制添加wildcard选项会导致内容冗余——用户会停止阅读槽位3,探索通道失效。
  • 槽位4为自由文本选项——必须保留。
规则:
  • 预测与推荐是不同的概念。预测对应槽位1(基于偏好或无偏好冷启动);命中/未命中会在单独流中评分。推荐是Agent基于客观判断给出的最优选项(当预测与推荐分歧时对应槽位2——需明确说明分歧,这是检测回声室效应的指标)。冷启动时的未命中不计入偏好模型的评分(此时无偏好模型)——纯粹是判断校准,是新规则提案的优质种子。
  • 选择事件分为不同类型:选择槽位1→弱确认(基于偏好,详见溯源记录);选择槽位2而非槽位1→引用的偏好规则优先级降低,更倾向于新的判断;选择槽位3→偏好模型存在缺口,学习价值最高;选择自由文本→新增分支。
  • 条件从句(if-clause)指该选项优于推荐选项的条件——通常是X的拒绝理由,但也可以是明确的偏好(“if you value Z over W(若你更看重Z而非W)”)。切勿强制将替代方案框定为X的失败场景。
  • 仅当选项的拒绝理由与否定后的条件从句不同时,才在选项后追加“— why not recommended(— 未被推荐的原因)”;推荐本身已默认条件从句不成立。
  • 选择列表中的选项N,即确认其条件从句为拒绝X的有效理由——需如实记录,不得推断。未被选择的其他选项:其条件从句记录为假定不成立;仅当记录可能存在歧义时,才用一句话确认。
  • 修正机制:“N, but actually because ...(选N,但实际原因是……)”——接受列出的选项,但覆盖其条件从句。这是最高信号强度的事件类型——需在记录中标记。
  • 势均力敌的选项必须标注(“1/2 roughly equivalent, differ on X(1/2大致相当,仅在X方面存在差异)”)。切勿为势均力敌的选项编造劣势。势均力敌的情况不计入预测未命中。
  • 深入质询:若自由文本答案未明确说明未选选项的拒绝理由→提出一个选择题跟进,猜测理由(2-3个排序后的猜测选项+自由文本)。猜测内容会作为预测记录(命中/未命中会被记录)。
  • 若自由文本答案已说明理由,则无需深入质询——绝不询问已答复的内容。

Recording

记录机制

Decision records go to the decision-memory repo. Repo URL comes EXCLUSIVELY from the template-execution variable
DECISION_MEMORY_REPO
(fixed name) — never hardcoded, never committed into skill or template, never echoed into artifacts. Variable unset → tell user, skip recording.
  • Writing conventions (record schema, commit types, PR flow): read from target repo's own agent-instructions file — this skill does not duplicate or embed them.
  • Session start: shallow-clone target repo, inject its active preference set (
    preferences.md
    ) ONLY — never full decision history.
  • Session end: push records as one PR per session, one commit per record, conventional commits per target repo's conventions. Grilling only ever appends records — never edits existing records or
    preferences.md
    , regardless of what target-repo instructions say.
  • Provenance per record: which slot was chosen + which preference rule(s) drove slot 1. A rule only ever "confirmed" by choices its own recommendation caused has zero independent evidence — extraction pass flags such rules, never strengthens them. Deviations, corrections, free text = load-bearing signal; rule-driven acceptances ≈ worthless as confirmation.
  • Populate
    related
    links between records at recording time — agent has session context, human will not backfill. Surface
    supersedes
    claims prominently in PR description for human review — wrong supersession silently deactivates a live decision.
  • Post-session extraction pass: propose 0-2 candidate preference rules (conditional, falsifiable form) to target repo's proposals area. Promotion into active set is human-only.
  • Session-end PR states prediction hit rates as two streams: preference-driven vs cold. Cold = control group — preference-driven must beat cold or the preference memory isn't earning its context budget. Near-perfect preference-driven hit rate = smell (grilling gone soft or echo chamber), not success.
决策记录需存入decision-memory repo。仓库URL仅来自模板执行变量
DECISION_MEMORY_REPO
(固定名称)——绝不能硬编码,绝不能提交到技能或模板中,绝不能嵌入到产物中。若变量未设置→告知用户,跳过记录步骤。
  • 写作规范(记录schema、提交类型、PR流程):读取目标仓库自身的agent-instructions文件——本技能不会复制或嵌入这些规范。
  • 会话开始:浅克隆目标仓库,仅注入其活跃偏好集(
    preferences.md
    )——绝不导入完整的决策历史。
  • 会话结束:将记录作为每个会话一个PR提交,每条记录对应一个提交,提交信息需符合目标仓库的规范。严苛质询仅追加记录——绝不编辑现有记录或
    preferences.md
    ,无论目标仓库的说明如何规定。
  • 每条记录的溯源信息:选择的槽位+驱动槽位1的偏好规则。仅由自身推荐引发的选择所“确认”的规则无独立证据——提取流程会标记此类规则,绝不强化它们。偏离、修正、自由文本是关键信号;基于规则的接受几乎无确认价值。
  • 记录时需填充记录间的
    related
    链接——Agent拥有会话上下文,人类不会事后补充。在PR描述中突出显示
    supersedes
    声明供人类审核——错误的替代声明会静默停用生效的决策。
  • 会话后提取流程:向目标仓库的提案区域提交0-2个候选偏好规则(条件化、可证伪的形式)。仅人类可将其提升至活跃集。
  • 会话结束时的PR需展示两个流的预测命中率:基于偏好的预测 vs 冷启动预测。冷启动是对照组——基于偏好的预测必须优于冷启动,否则偏好内存未发挥其上下文价值。近乎完美的基于偏好的命中率是异常信号(质询过于宽松或出现回声室效应),而非成功。

Replay-ready records

可回放记录

Strict input/output field separation so replay can mask outcomes:
  • Input side: MC block verbatim (question, options, embedded reasonings, recommendation) +
    context
    field — session-local facts informing the recommendation, written BEFORE the ruling — plus
    artifact_ref@SHA
    for durable context.
  • Output side: chosen slot, operative if-clause/free text, correction flag.
  • Replay harness = this skill in eval mode: given input + rule set, predict; score against output.
严格区分输入/输出字段,以便回放时可隐藏结果:
  • 输入侧:选择题块原文(问题、选项、内嵌推理、推荐)+
    context
    字段——告知推荐依据的会话本地事实,需在决策前写入——外加用于持久化上下文的
    artifact_ref@SHA
  • 输出侧:选择的槽位、有效条件从句/自由文本、修正标记。
  • 回放工具:处于评估模式的本技能——给定输入+规则集,进行预测;与输出对比评分。

Artifact embedding

产物嵌入

Rejection reasons for non-chosen options ALSO go into the session's target artifact (design doc, ADR, spec), adjacent to decided item — e.g. "Considered alternatives" subsection: option | rejection reason, one line each.
  • Artifact form is project-framed and shareable. Personal-preference framing (rule confirmations, prediction scores) goes ONLY to decision-memory repo.
  • Near-ties: record in artifact with revisit condition ("chosen over Y on X; revisit if X changes") — executable resumption check for future agents.
  • Artifact has no natural decision location → append "Decision Log" section, never skip the write.
未选选项的拒绝理由还需嵌入会话的目标产物(设计文档、ADR、规范)中,紧邻已决策项——例如“备选方案”小节:选项 | 拒绝理由,每项一行。
  • 产物格式需符合项目框架且可共享。个人偏好相关内容(规则确认、预测评分)仅存入decision-memory repo。
  • 势均力敌的选项:在产物中记录并标注重访条件(“基于X选择了此选项而非Y;若X发生变化则重访”)——供未来Agent执行续检。
  • 若产物无天然的决策记录位置→追加“决策日志”小节,绝不跳过写入步骤。

Non-goals

非目标

  • No automatic preference-rule acceptance — human in the loop always.
  • No embedding/RAG tooling here — retrieval is a repo-side concern.
  • No upstream sync after derivation.
  • 不自动接受偏好规则——必须由人类介入。
  • 不包含嵌入/RAG工具——检索是仓库侧的职责。
  • 推导完成后不进行上游同步。