Skip to main content
Glama
vmware-skills

io.github.zw008/vmware-debug

submit_case_evidence

Record one retrieved VMware fact as case evidence after a read-tool call, capturing raw payload, source, and summary to grade hypotheses and build the timeline.

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 record_case_timeline later.

GOTCHAS: a fetch that failed or came back empty goes to record_case_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 open_case/list_cases). Required.
payloadNoThe read tool's RAW result, not a summary. For its events to reach record_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 record_case_hypothesis; 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. get_case_knowledge lists what is mounted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.3.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=false), so the bar is lower, but the description still adds real value: it discloses the return shape ({case_id, evidence_id, payload_events, payload_note, grade, reasons}), why grade is returned (no second call needed), and the cross-tool consequence that a summary submitted in place of a raw payload becomes visible here rather than as a later zero. It does not itself warn about duplicate submissions, relying on the idempotency annotation for that.

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?

Front-loaded with the [WRITE] marker, then split into labeled WHEN / RETURNS / GOTCHAS sections. Every sentence carries operational content; nothing is padding.

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?

With 13 parameters at 100% schema coverage and no output schema, the description carries the return-shape burden itself and does so. The routing rule to record_case_gap and the grade-return rationale close the loops an agent needs before calling.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter meaning beyond the per-field docs: it explains that the payload is read as raw events and that a summary used in its place is detectable via payload_note. The payload/summary/grade interplay is genuinely useful framing the schema does not state.

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?

States a specific verb+resource ("Record one retrieved fact") and frames it in the case workflow ("steps 02/03 of the evidence loop"). The GOTCHAS section explicitly names the sibling it is NOT (record_case_gap), so an agent can separate them without opening either schema.

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?

Gives an explicit trigger ("after every read-tool call you intend to reason from") and an explicit exclusion with the alternative ("a fetch that failed or came back empty goes to record_case_gap, not here"). Both the when and the when-not are stated, not inferred.

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