From 33bbf543c5fd12572fe7934e39e3111fdd0d74cd Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Wed, 3 Jun 2026 10:34:40 +0300 Subject: [PATCH] In analysis, refuse cleanly when evidence is missing --- haiku_rag_slim/haiku/rag/skills/rag-analysis/SKILL.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/haiku_rag_slim/haiku/rag/skills/rag-analysis/SKILL.md b/haiku_rag_slim/haiku/rag/skills/rag-analysis/SKILL.md index 882b7542..c8344f71 100644 --- a/haiku_rag_slim/haiku/rag/skills/rag-analysis/SKILL.md +++ b/haiku_rag_slim/haiku/rag/skills/rag-analysis/SKILL.md @@ -112,6 +112,14 @@ Search results include `doc_item_refs` (e.g. `["#/texts/48", "#/tables/0"]`) tha You MUST call `cite` with at least one chunk ID before producing your final answer **when your answer is grounded on retrieved evidence**. Skip `cite` in two cases: (a) you are refusing for lack of information, or (b) your answer is a corpus-level computation (count, aggregation, listing) that doesn't draw on specific chunks. In those cases do **not** fabricate citations. +## When the evidence is missing + +If neither search nor code traversal surfaces evidence for the question, say: "I cannot find enough information in the knowledge base to answer this question." Do not guess at a number, date, name, or category. Do not infer from tangentially related content. Do not extrapolate from a partial match. A clear refusal is more useful than a fabricated answer. + +A computed result counts as evidence only when the code actually located the items the question asks about. If a count, sum, or list comes out empty because the relevant items were not in the document, that is a refusal case, not a "zero" answer. + +In a refusal case do **not** call `cite` — there is nothing to cite. + ## Important - Variables persist between `execute_code` calls — you can search in one call and process results in the next