From 74714806c0b8f86ce33458387f8d0fe7cc5a937b Mon Sep 17 00:00:00 2001 From: "Dhanji R. Prasanna" Date: Sat, 14 Feb 2026 14:19:54 +1100 Subject: [PATCH] Add evidence format guidance to plan_write tool description Agents frequently put descriptive prose in the evidence field when marking plan items done, causing verification errors since parse_evidence() interprets everything as file paths. The plan_write tool description now documents the 3 accepted evidence formats (file path, file:line, file::test_name) and explicitly warns against putting descriptions in evidence. --- crates/g3-core/src/tool_definitions.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/g3-core/src/tool_definitions.rs b/crates/g3-core/src/tool_definitions.rs index 68bc1b1..d9bc86b 100644 --- a/crates/g3-core/src/tool_definitions.rs +++ b/crates/g3-core/src/tool_definitions.rs @@ -214,7 +214,7 @@ fn create_core_tools() -> Vec { "properties": { "plan": { "type": "string", - "description": "The plan as YAML. Must include plan_id and items array." + "description": "The plan as YAML. Must include plan_id and items array.\n\nWhen marking items done, `evidence` must be a list of verifiable file references — NOT free-form descriptions. Each entry is verified against the filesystem.\n\nAccepted evidence formats:\n- `src/foo.rs` — file path (checked: file exists)\n- `src/foo.rs:42` or `src/foo.rs:42-118` — file + line range (checked: file exists, lines in range)\n- `tests/foo.rs::test_bar` — test reference (checked: file exists, function found)\n\n❌ Do NOT put descriptions, summaries, or prose in evidence. Use `notes` for explanations." } }, "required": ["plan"]