mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
Fix BC MCP discovery guidance og gør Francis->Immanuel-hand-off autonom
- bc-mcp.agent.md-templaten fik en manglende "preload de tre bc_actions_* værktøjer via ToolSearch select:"-sektion, som ellers kun levede i bc-mcp-tools-must-be-preloaded.md og derfor aldrig blev håndhævet. - Rettet forkert antaget navnemønster (ListUpdate<entity>_PAG<id> -> Modify_<Entity>_PAG<id>, bekræftet empirisk via bc_actions_search). Ny regel bc-mcp-naming-convention-must-be-reverified.md kræver at navnekonventioner altid markeres som "forvent, reverificér" fremover. - francis.agent.md + immanuel.agent.md: hand-off fra Francis til Immanuel er nu eksplicit automatisk. Michael er ikke et mellemstop i pipelinen - han involveres først når PR'en er klar til merge. Observeret 2026-07-04: en session brugte ToolSearch med keyword-søgning i stedet for select: (fandt irrelevante værktøjer), ledte derefter efter et ListUpdate-værktøj der ikke findes, og spurgte om lov til at fortsætte til Immanuel midt i pipelinen.
This commit is contained in:
parent
1461f95484
commit
3d1e1c1950
4 changed files with 117 additions and 7 deletions
|
|
@ -0,0 +1,61 @@
|
|||
---
|
||||
bc-version: [all]
|
||||
domain: mcp
|
||||
keywords: [mcp, tools, naming, bc-actions-search, verification, bc]
|
||||
technologies: [al]
|
||||
countries: [w1]
|
||||
application-area: [all]
|
||||
---
|
||||
---
|
||||
rule: bc-mcp-naming-convention-must-be-reverified
|
||||
title: BC MCP action-naming conventions must be reverified, not assumed
|
||||
category: mcp
|
||||
severity: required
|
||||
---
|
||||
|
||||
# BC MCP action-naming conventions must be reverified, not assumed
|
||||
|
||||
## Description
|
||||
|
||||
Documentation describing the `businesscentral` MCP server's action-naming pattern
|
||||
(`List_<Entity>_PAG<id>`, `Modify_<Entity>_PAG<id>`, `Create_<Entity>_PAG<id>`) must
|
||||
state it as an **expectation to reverify per call with `bc_actions_search`**, never
|
||||
as a guaranteed fact. The verb prefix is not uniform across every entity.
|
||||
|
||||
## Why
|
||||
|
||||
The `bc-mcp.agent.md` template asserted the modify-action name as `ListUpdate<entity>
|
||||
_PAG<id>` as fact. The real action returned by `bc_actions_search` for updating
|
||||
`projectRepositories` was `Modify_ProjectRepository_PAG6102904` - singular entity
|
||||
name, `Modify_` prefix, not `ListUpdate`. An agent that trusts the documented pattern
|
||||
without verifying hunts for a tool that does not exist, wasting a round trip exactly
|
||||
like the one this rule replaces.
|
||||
|
||||
Meanwhile `Create_NewTask_PAG6102905` (used elsewhere in the same template) DOES
|
||||
match the documented `Create_<entity>_PAG<id>` shape - so the pattern is a reasonable
|
||||
starting guess, just not one to assert as fact without confirming it that call.
|
||||
|
||||
## What counts as a violation
|
||||
|
||||
- A BC MCP agent template states an action name or naming pattern as guaranteed,
|
||||
without an instruction to confirm it via `bc_actions_search` before relying on it.
|
||||
- An agent session assumes an action name from documentation and calls
|
||||
`bc_actions_invoke` with it directly, without first getting the exact name from
|
||||
`bc_actions_search` or `bc_actions_describe`.
|
||||
|
||||
## Correct pattern
|
||||
|
||||
1. bc_actions_search(SearchText: "<entity keywords>", SearchMode: keyword,
|
||||
ActionType: [List|Modify|Create])
|
||||
2. Use the exact name returned - do not construct it from a remembered pattern.
|
||||
3. bc_actions_describe on that exact name before invoking it.
|
||||
|
||||
Documentation may state the *expected* shape as a memory aid, but must mark it
|
||||
explicitly as unverified per-entity, e.g.: "expect `Modify_<Entity>_PAG<id>` -
|
||||
reverify, do not assume."
|
||||
|
||||
## Scope
|
||||
|
||||
Applies to every BC MCP agent template and every session that calls
|
||||
`bc_actions_search` / `bc_actions_describe` / `bc_actions_invoke` in any CURABIS
|
||||
project.
|
||||
Loading…
Add table
Add a link
Reference in a new issue