Component: finbot/agents/chat.py → VendorChatAssistant._get_system_prompt (lines 500 and 517)
Root cause:
# chat.py line 500 — CAPABILITIES section (plain language, no tool name)
- Browse, search, and read files stored in FinDrive (the vendor's document storage)
# chat.py line 517 — RULES section (explicit MCP tool name)
- When the user attaches FinDrive files, read them using the findrive__get_file tool
to understand their content before responding.
CAPABILITIES describes FinDrive access in natural language with no tool name.
RULES then names the specific MCP tool findrive__get_file directly.
The two sections use inconsistent levels of abstraction for the same capability.
This is the opposite pattern from Bug_200(where CAPABILITIES named tools explicitly).
Between the two issues, the Vendor prompt has no consistent convention for when tool
names appear and when they do not.
Steps to reproduce:
- Read
VendorChatAssistant._get_system_prompt().
- Observe line 500: FinDrive described without tool name.
- Observe line 517:
findrive__get_file named explicitly in RULES.
Proposed fix:
Apply a consistent convention across both sections. Either:
- Name tools in CAPABILITIES (where they are introduced) and reference them consistently in RULES.
- Or name tools only in RULES (where they are needed for dispatch) and keep CAPABILITIES in plain language throughout.
The CoPilot prompt uses the second pattern more consistently — CAPABILITIES describes
capabilities in plain language, WORKFLOW GUIDANCE names tools for dispatch.
Align the Vendor prompt to the same convention.
Impact: A developer maintaining the Vendor prompt who adds a new FinDrive capability
has no clear pattern to follow. They might add the tool name to CAPABILITIES (following
line 501's FinMail example) or leave it in plain language (following line 500's FinDrive
example) or put it only in RULES (following line 517). The inconsistency accumulates over
time and makes the prompt harder to audit and test.
Acceptance criteria:
- CAPABILITIES and RULES sections follow a single consistent convention for tool name usage
- All existing prompt content tests continue to pass
test_chat_prompt_055 (no internal tool name leakage) continues to pass
Component: finbot/agents/chat.py → VendorChatAssistant._get_system_prompt (lines 500 and 517)
Root cause:
CAPABILITIES describes FinDrive access in natural language with no tool name.
RULES then names the specific MCP tool
findrive__get_filedirectly.The two sections use inconsistent levels of abstraction for the same capability.
This is the opposite pattern from Bug_200(where CAPABILITIES named tools explicitly).
Between the two issues, the Vendor prompt has no consistent convention for when tool
names appear and when they do not.
Steps to reproduce:
VendorChatAssistant._get_system_prompt().findrive__get_filenamed explicitly in RULES.Proposed fix:
Apply a consistent convention across both sections. Either:
The CoPilot prompt uses the second pattern more consistently — CAPABILITIES describes
capabilities in plain language, WORKFLOW GUIDANCE names tools for dispatch.
Align the Vendor prompt to the same convention.
Impact: A developer maintaining the Vendor prompt who adds a new FinDrive capability
has no clear pattern to follow. They might add the tool name to CAPABILITIES (following
line 501's FinMail example) or leave it in plain language (following line 500's FinDrive
example) or put it only in RULES (following line 517). The inconsistency accumulates over
time and makes the prompt harder to audit and test.
Acceptance criteria:
test_chat_prompt_055(no internal tool name leakage) continues to pass