Skip to main content
Glama
vmware-skills

io.github.zw008/vmware-debug

case_submit_evidence

Record a retrieved fact from any read-tool call, returning the case grade and payload interpretation so you can see immediately what the evidence counted as.

Instructions

[WRITE] Record one retrieved fact — steps 02/03 of the evidence loop.

WHEN: after every read-tool call you intend to reason from.

RETURNS: {case_id, evidence_id, payload_events, payload_note, grade, reasons} — the resulting grade, so you need no second call to see whether this changed anything, and what the payload was read as, so a summary submitted in place of a result is visible here rather than as a zero from case_timeline later.

GOTCHAS: a fetch that failed or came back empty goes to case_record_gap, not here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryNoThe exact parameters the tool was called with, so it can be re-run. Omit only if there genuinely were none.
case_idYesThe case this fact belongs to (from case_open/case_list). Required.
payloadNoThe read tool's RAW result, not a summary. For its events to reach case_timeline it must be a list of event dicts, or carry them under 'items', 'events' or 'rows'. What was found comes back as payload_events/payload_note.
summaryYesWhat this item shows, one line.
falsifiesNoHypothesis ids (H1, H2, …) this observation RULES OUT — the only route to Excluded; "we looked and found nothing" is a gap, not an exclusion. Ids must already exist via case_hypotheses; an unregistered id is refused and nothing is written.
fetched_atNoWhen the fetch happened, ISO-8601. Omit to stamp now — wrong for an item transcribed from earlier.
window_endNoEnd of the period the data covers, ISO-8601.
source_toolYesThe tool within that skill, e.g. "get_events". Required, non-blank — "monitor said so" is not reproducible.
time_sourceNoWhose clock stamped it — "vcenter", "host" or "client". Recorded so a reader can judge whether two sources' timestamps compare; nothing in this release corrects for it. Null when unknown, never a guess.
clock_skew_sNoKnown offset of that clock from UTC, in seconds. Recorded, likewise not applied. Null when unknown.
source_skillYesThe skill that produced it, as the family spells it — "vmware-monitor", "vmware-aria", "vmware-log-insight". Required, non-blank. Two items from the SAME skill count as ONE source when corroboration is counted, so this string decides whether the case can reach Probable. Two reserved values name the knowledge layer instead: "knowledge-kb" and "knowledge-sr", the only sources that can be decisive.
window_startNoStart of the period the DATA COVERS, ISO-8601 — not when it was fetched. get_events(hours=24) run at 10:00 and at
knowledge_entry_idNoWhich mounted knowledge entry this item IS. REQUIRED when source_skill is knowledge-kb or knowledge-sr — without it the entry's applies_to cannot be checked, so it counts as ordinary support and can never make the case Confirmed. case_knowledge lists what is mounted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.13.0
    • changedInput schema / title
      Previous value: -"_case_submit_evidence_implArguments"New value: +"case_submit_evidenceArguments"
  2. Addedv1.11.1

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, and the description adds [WRITE] plus meaningful context: it returns the resulting grade, shows what the payload was read as, and explains that a summary submitted in place of a result will be visible rather than appearing as a zero later. This goes beyond the annotation flags in a useful way.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured with labeled sections: [WRITE], WHEN, RETURNS, GOTCHAS. It is front-loaded with the core purpose and every sentence adds either usage guidance, return semantics, or an exclusion rule. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 13 parameters and no output schema, the description covers the essential operational context: when to call it, what it returns, how the payload is interpreted, and where failures belong. Combined with the fully described schema, an agent has enough to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description itself does not add much parameter-level detail beyond what the schema already provides, though it does contextualize the summary field's role in the return behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Record one retrieved fact — steps 02/03 of the evidence loop.' It also distinguishes itself from the sibling case_record_gap in the GOTCHAS section, so an agent can tell this is for successful evidence, not failed or empty fetches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says WHEN to use it: 'after every read-tool call you intend to reason from.' It also gives an exclusion rule: a fetch that failed or came back empty goes to case_record_gap, not here. This is clear routing guidance with a named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.