When is_markdown is true (skills/task executor path), wrap stdout in a fenced code block, same as read_file. Terminal output is opaque bytes; we do not pass it through as markdown. Tools that return structured markdown (e.g. codebase_search via SearchResult.to_markdown()) do not override execute — only plain-output tools fence here.