From ebf132d5ac021f76e8b83805d6bf8b2396a426df Mon Sep 17 00:00:00 2001 From: agent_vscode Date: Mon, 6 Jul 2026 18:29:57 +0300 Subject: [PATCH] feat(agent-roles): make the researcher's search budget mandatory to spend A user-provided "research budget" now defines the required search volume: it is binding and must be spent in full, overriding the default "stop at saturation" rule. - STEP 0: split the budget into user-set (binding, must be used up) vs self-estimated (when the user gave no number) - VOLUME: limit "stop at saturation" to the no-budget case; add a MANDATORY BUDGET block requiring the full budget be spent on genuine broadening/lateral/primary-source/verification searches, not padding - Apply identically to bundles/research/ru.yaml and en.yaml - Bump researcher version 2 -> 3 in index.yaml; refresh content-hashes.json Co-Authored-By: Claude Opus 4.8 (1M context) --- agent-roles-catalog/bundles/research/en.yaml | 24 +++++++++++++++---- agent-roles-catalog/bundles/research/ru.yaml | 24 +++++++++++++++---- agent-roles-catalog/index.yaml | 2 +- .../scripts/content-hashes.json | 4 ++-- 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/agent-roles-catalog/bundles/research/en.yaml b/agent-roles-catalog/bundles/research/en.yaml index 111484e9..38d1d22a 100644 --- a/agent-roles-catalog/bundles/research/en.yaml +++ b/agent-roles-catalog/bundles/research/en.yaml @@ -23,8 +23,12 @@ roles: inside it, which terms are ambiguous or have synonyms/jargon. - Formulate 5–10 search directions, including adjacent perspectives that may prove useful even if the user did not ask about them directly. - - Set a "research budget" — roughly how many searches the task's complexity - warrants (a simple fact: under 5; a medium task: 5–15; a hard task: more). + - Fix the "research budget" — how many searches to run. If the USER named a + budget (e.g. "budget 100"), that number is BINDING and MUST be spent in + full: it defines the volume of the research, so keep searching until it is + used up. If the user gave no number, estimate one yourself from the task's + complexity (a simple fact: under 5; a medium task: 5–15; a hard task: + more). - Decide which languages it makes sense to search in (see below). ═══════════════════════════════════════════════ @@ -62,9 +66,19 @@ roles: HOW TO SEARCH ═══════════════════════════════════════════════ VOLUME. Execute a MINIMUM of 15 distinct searches, more for complex tasks. - Do not stop at the first plausible answer. Stop only when further searches - stop yielding new relevant information (saturation / diminishing returns) — - not when it "seems like enough" or when you get tired. + Do not stop at the first plausible answer. Absent an explicit budget, stop + only when further searches stop yielding new relevant information + (saturation / diminishing returns) — not when it "seems like enough" or when + you get tired. + + MANDATORY BUDGET. A "research budget" set by the user is a floor you MUST + reach: spend it in full even past the point where the topic already feels + covered. Do not treat apparent saturation as permission to stop early — + instead put the remaining searches to real use: broaden the scope, go + lateral into adjacent areas, dig deeper into primary sources, and verify key + facts from independent angles. Never pad the count with junk or near- + duplicate queries; every search must be a genuine attempt to learn something + new. WIDE → NARROW. Start with short, broad queries (2–5 words), survey the landscape, then narrow. If results are scarce, broaden the phrasing; if diff --git a/agent-roles-catalog/bundles/research/ru.yaml b/agent-roles-catalog/bundles/research/ru.yaml index 81299fc0..2088a619 100644 --- a/agent-roles-catalog/bundles/research/ru.yaml +++ b/agent-roles-catalog/bundles/research/ru.yaml @@ -23,8 +23,12 @@ roles: inside it, which terms are ambiguous or have synonyms/jargon. - Formulate 5–10 search directions, including adjacent perspectives that may prove useful even if the user did not ask about them directly. - - Set a "research budget" — roughly how many searches the task's complexity - warrants (a simple fact: under 5; a medium task: 5–15; a hard task: more). + - Fix the "research budget" — how many searches to run. If the USER named a + budget (e.g. "budget 100"), that number is BINDING and MUST be spent in + full: it defines the volume of the research, so keep searching until it is + used up. If the user gave no number, estimate one yourself from the task's + complexity (a simple fact: under 5; a medium task: 5–15; a hard task: + more). - Decide which languages it makes sense to search in (see below). ═══════════════════════════════════════════════ @@ -62,9 +66,19 @@ roles: HOW TO SEARCH ═══════════════════════════════════════════════ VOLUME. Execute a MINIMUM of 15 distinct searches, more for complex tasks. - Do not stop at the first plausible answer. Stop only when further searches - stop yielding new relevant information (saturation / diminishing returns) — - not when it "seems like enough" or when you get tired. + Do not stop at the first plausible answer. Absent an explicit budget, stop + only when further searches stop yielding new relevant information + (saturation / diminishing returns) — not when it "seems like enough" or when + you get tired. + + MANDATORY BUDGET. A "research budget" set by the user is a floor you MUST + reach: spend it in full even past the point where the topic already feels + covered. Do not treat apparent saturation as permission to stop early — + instead put the remaining searches to real use: broaden the scope, go + lateral into adjacent areas, dig deeper into primary sources, and verify key + facts from independent angles. Never pad the count with junk or near- + duplicate queries; every search must be a genuine attempt to learn something + new. WIDE → NARROW. Start with short, broad queries (2–5 words), survey the landscape, then narrow. If results are scarce, broaden the phrasing; if diff --git a/agent-roles-catalog/index.yaml b/agent-roles-catalog/index.yaml index fb49d68a..1bf8c9a1 100644 --- a/agent-roles-catalog/index.yaml +++ b/agent-roles-catalog/index.yaml @@ -33,4 +33,4 @@ bundles: - en roles: - slug: researcher - version: 2 + version: 3 diff --git a/agent-roles-catalog/scripts/content-hashes.json b/agent-roles-catalog/scripts/content-hashes.json index 448d97df..2f75da73 100644 --- a/agent-roles-catalog/scripts/content-hashes.json +++ b/agent-roles-catalog/scripts/content-hashes.json @@ -16,8 +16,8 @@ "hash": "cef39fed321779631ddd1077fcba53399adf0e48b301df281c71eb042610900d" }, "researcher": { - "version": 2, - "hash": "03fe437431808b6145a5f0aa79af460db156435f7c14d0af42362ad13794868a" + "version": 3, + "hash": "8d6b578e86e3be766bbedb7e753ba8dd72bb131608fa17f1a2ec3969e66f9bdc" }, "structural-editor": { "version": 4,