WYL-52: suppress debater mention-chain cascade

Add _NO_MENTION_RULE to all DEBATER_PROMPTS and JUDGE_PROMPT_TEMPLATE
explicitly instructing agents not to @-mention other agents in their
replies. Mentions trigger Multica's mention-trigger mechanism, causing
cascade tasks from debaters responding to each other's comments.

Plain-name references (e.g. 'Code Reviewer' not '@Code Reviewer') are
still allowed for cross-reference in evidence text.
This commit is contained in:
2026-04-15 22:48:06 +00:00
parent 11d1d675dd
commit 191cb2e01a
+18 -5
View File
@@ -48,6 +48,13 @@ JUDGE_NAME: str = "Reality Checker"
# Per-debater evidence prompts.
# Placeholders: {issue_title}, {issue_description}, {commit_url}
# Each prompt tells the debater exactly which tool output to ground its argument in.
_NO_MENTION_RULE: str = (
"**Important:** Do not @-mention any other agent or person in your reply. "
"If you need to refer to another debater, use their plain name only "
"(e.g. \"Code Reviewer\" not \"@Code Reviewer\"). "
"Mentions cause unwanted cascade tasks."
)
DEBATER_PROMPTS: dict[str, str] = {
"Senior Developer": (
"**Your task:** grep the committed code for LLM API calls "
@@ -55,26 +62,30 @@ DEBATER_PROMPTS: dict[str, str] = {
"1. Yes/no — does the code make LLM API calls?\n"
"2. The exact grep command you ran.\n"
"3. The full grep output (or 'no matches').\n\n"
"Max 300 words."
"Max 300 words.\n\n"
+ _NO_MENTION_RULE
),
"Code Reviewer": (
"**Your task:** diff the committed implementation method-by-method against "
"every requirement in the issue description. For each requirement: state it, "
"then label MET or MISSING with one line of evidence from the diff. "
"Overall confidence: high / medium / low.\n\n"
"Max 300 words."
"Max 300 words.\n\n"
+ _NO_MENTION_RULE
),
"AI Engineer": (
"**Your task:** ground-check every factual claim in the issue description "
"against the committed code. For each claim: state it, then verify or refute "
"with a direct code reference. Label each VERIFIED or UNVERIFIED.\n\n"
"Max 300 words."
"Max 300 words.\n\n"
+ _NO_MENTION_RULE
),
"Project Manager Senior": (
"**Your task:** check the committed work against the original acceptance "
"criteria. For each criterion: satisfied (with evidence) or not met. "
"State your recommendation: ACCEPT or REJECT.\n\n"
"Max 300 words."
"Max 300 words.\n\n"
+ _NO_MENTION_RULE
),
}
@@ -96,7 +107,9 @@ Deliver your verdict. Begin your reply with exactly one of:
- `VERDICT: ACCEPT` — implementation satisfies all critical acceptance criteria
- `VERDICT: REJECT` — it does not
Follow with reasoning (max 400 words).\
Follow with reasoning (max 400 words).
**Important:** Do not @-mention any agent or person in your reply. Use plain names only.\
"""
_COMMIT_URL_RE = re.compile(