diff --git a/docs/explanation/adversarial-review.md b/docs/explanation/adversarial-review.md index 986c5d5af..da2fab8fc 100644 --- a/docs/explanation/adversarial-review.md +++ b/docs/explanation/adversarial-review.md @@ -11,7 +11,7 @@ Force deeper analysis by requiring a real list of issues — not a cynical perso A review technique where the reviewer must produce findings. "Looks good" with an empty list is not allowed. -The mechanism is a **finding floor** (at least ten issues to fix or improve) plus an explicit push to look for **what is missing**, not only what is wrong. If the content is empty, stop. If the list is empty, re-check — do not finish with nothing. +The mechanism is a **finding floor** (at least ten issues to fix or improve) plus an explicit push to look for **what is missing**, not only what is wrong. Output is a Markdown list of descriptions only — no severity, priority, or ranking. If the content is empty, stop. If the list is empty, re-check — do not finish with nothing. It is not about sounding hostile. Older prompts used a jaded persona; that does not change what modern models find. What still matters is the obligation to keep searching and to prefer omissions over a cursory pass. diff --git a/docs/zh-cn/explanation/adversarial-review.md b/docs/zh-cn/explanation/adversarial-review.md index 0a8fba902..2400b94fe 100644 --- a/docs/zh-cn/explanation/adversarial-review.md +++ b/docs/zh-cn/explanation/adversarial-review.md @@ -11,7 +11,7 @@ sidebar: 一种评审手法:评审者**必须**产出发现。空列表式的“看起来不错”不允许。 -机制是**发现数量下限**(至少十条可修/可改的问题),并明确要求看**缺了什么**,而不只是错了什么。内容为空则停止;若一条都没有,要再查,不能空着结束。 +机制是**发现数量下限**(至少十条可修/可改的问题),并明确要求看**缺了什么**,而不只是错了什么。输出仅为 Markdown 列表描述——无严重度、优先级或排序。内容为空则停止;若一条都没有,要再查,不能空着结束。 这与“装成刻薄审稿人”无关。旧提示里的人设对现在的模型几乎不改变发现内容;真正起作用的是继续搜寻的义务,以及对遗漏的偏好。 diff --git a/src/core-skills/bmad-review/references/lens-adversarial.md b/src/core-skills/bmad-review/references/lens-adversarial.md index dbafdd983..cd417e732 100644 --- a/src/core-skills/bmad-review/references/lens-adversarial.md +++ b/src/core-skills/bmad-review/references/lens-adversarial.md @@ -4,7 +4,6 @@ Conduct a review of the provided content. Look for what's missing, not only what's wrong. Find at least ten issues to fix or improve. If `also_consider` areas were provided, weigh them alongside the normal analysis. -Every finding must point at something concrete in the content. If the content is empty, stop and say so. If you have zero findings, re-check and keep thinking; do not stop with an empty list. diff --git a/test/test-build-auto-renderer.js b/test/test-build-auto-renderer.js index 7d9b669e2..59d448d44 100644 --- a/test/test-build-auto-renderer.js +++ b/test/test-build-auto-renderer.js @@ -185,13 +185,13 @@ async function main() { assert(!markdown.includes('{skill-root}'), 'mutable skill-root reference survived'); assert(markdown.includes('{spec_file}'), 'runtime placeholder was removed'); assert(markdown.includes('tailored to `expert`'), 'user_skill_level behavior missing'); - // Blind hunter is inlined in customize.toml; only file-backed reviewers ship under review-prompts/. + // File-backed review layers are snapshotted; blind hunter is inlined (no adversarial.md). for (const prompt of ['edge-case-hunter.md', 'verification-gap.md']) { const promptPath = path.join(dir, 'review-prompts', prompt); assert(markdown.includes(promptPath), `snapshot reviewer path missing: ${prompt}`); assert(fs.existsSync(promptPath), `snapshot reviewer missing: ${prompt}`); } - assert(markdown.includes('Conduct a review of CONTENT.'), 'inlined blind-hunter prompt missing from rendered layers'); + assert(!fs.existsSync(path.join(dir, 'review-prompts', 'adversarial.md')), 'deleted adversarial.md was published into the snapshot'); for (const match of markdown.matchAll(/`(\/[^`]+\/step-[^`]+\.md)`/g)) { assert(path.dirname(match[1]) === dir, `cross-generation reference: ${match[1]}`); }