package main import ( "strings" "testing" ) // 人类的说明必须出现在注入给模型的提示词里。 // // 缺陷现场(2026-09-13):人类在权限决策里写「我说了让你拉取仓库到program下你听不懂吗」, // 而注入的提示词只有"结论 + 决策人" —— 模型不知道要改什么,把同一条命令又问了一遍。 func TestPermissionDecisionPromptCarriesNote(t *testing.T) { const note = "我说了让你拉取仓库到program下你听不懂吗" got := permissionDecisionPrompt(mailEvent{ Subject: "拒绝", FromName: "jianf", Note: note, }) if !strings.Contains(got, note) { t.Fatalf("提示词必须原样带上人类的说明,实际:%q", got) } // 反向对照:没写说明时不得凭空造出"用户的说明" plain := permissionDecisionPrompt(mailEvent{Subject: "同意", FromName: "jianf"}) if strings.Contains(plain, "用户的说明") { t.Fatalf("无说明却出现了说明段:%q", plain) } // 空白说明同样算没有(ss TrimSpace 过的) if s := permissionDecisionPrompt(mailEvent{Subject: "拒绝", FromName: "jianf", Note: " "}); strings.Contains(s, "用户的说明") { t.Fatalf("空白说明不该算说明:%q", s) } }