diff --git a/apps/server/src/provider/RuntimeInstructions.test.ts b/apps/server/src/provider/RuntimeInstructions.test.ts
index 320aa332c937..81f205028400 100644
--- a/apps/server/src/provider/RuntimeInstructions.test.ts
+++ b/apps/server/src/provider/RuntimeInstructions.test.ts
@@ -17,4 +17,10 @@ describe("buildRuntimeInstructions", () => {
expect(instructions).toContain("through the Cursor harness.");
expect(instructions).not.toContain("reasoning effort");
});
+
+ it("tells the agent how to nest fenced code inside a code block", () => {
+ expect(buildRuntimeInstructions({ harness: "Claude Code" })).toContain(
+ "must be fenced with a longer fence (four backticks or a ~~~ fence)",
+ );
+ });
});
diff --git a/apps/server/src/provider/RuntimeInstructions.ts b/apps/server/src/provider/RuntimeInstructions.ts
index 102c49c78a9e..d762836279b6 100644
--- a/apps/server/src/provider/RuntimeInstructions.ts
+++ b/apps/server/src/provider/RuntimeInstructions.ts
@@ -9,7 +9,7 @@ export function buildRuntimeInstructions(runtime: {
const effort = toSingleLine(runtime.reasoningEffort ?? "");
const modelInfo = model && model !== "auto" && model !== "default" ? `, as ${model}` : "";
const effortInfo = effort ? ` with ${effort} reasoning effort` : "";
- return `In case you're asked: you are running in T3 Code through the ${harness} harness${modelInfo}${effortInfo}. No need to mention this otherwise. You can embed images and videos in your response using Markdown with absolute file paths.`;
+ return `In case you're asked: you are running in T3 Code through the ${harness} harness${modelInfo}${effortInfo}. No need to mention this otherwise. You can embed images and videos in your response using Markdown with absolute file paths. Responses render as CommonMark: a code block that itself contains triple backticks must be fenced with a longer fence (four backticks or a ~~~ fence), otherwise the inner closing fence ends the block early.`;
}
function toSingleLine(value: string): string {