gradeNot graded
get_case_briefingAnswer
Returns the case intro: victim, location, date, and the full briefing narrative. Call this first to orient before searching evidence.
View tool JSON
{
"name": "get_case_briefing",
"kind": "answer",
"impl": "imperative",
"description": "Returns the case intro: victim, location, date, and the full briefing narrative. Call this first to orient before searching evidence.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
}
},
"required": [
"caseId"
],
"additionalProperties": false
}
}search_evidenceAnswer
Full-text search across all case evidence and suspect dossiers. Returns ranked hits with ids, kinds and excerpts. Use ids with read_evidence for full content.
View tool JSON
{
"name": "search_evidence",
"kind": "answer",
"impl": "imperative",
"description": "Full-text search across all case evidence and suspect dossiers. Returns ranked hits with ids, kinds and excerpts. Use ids with read_evidence for full content.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
},
"query": {
"type": "string",
"description": "Search terms, e.g. 'blackout veranda'."
}
},
"required": [
"caseId",
"query"
],
"additionalProperties": false
}
}read_evidenceAnswer
Returns the complete record of one item by id: an evidence piece (statement, log, document, physical object) or a suspect dossier. Always cite item ids when reasoning about them.
View tool JSON
{
"name": "read_evidence",
"kind": "answer",
"impl": "imperative",
"description": "Returns the complete record of one item by id: an evidence piece (statement, log, document, physical object) or a suspect dossier. Always cite item ids when reasoning about them.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
},
"itemId": {
"type": "string"
}
},
"required": [
"caseId",
"itemId"
],
"additionalProperties": false
}
}list_suspectsAnswer
Returns all suspects' dossiers: name, role, alibi, motive, relationship to the victim.
View tool JSON
{
"name": "list_suspects",
"kind": "answer",
"impl": "imperative",
"description": "Returns all suspects' dossiers: name, role, alibi, motive, relationship to the victim.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
}
},
"required": [
"caseId"
],
"additionalProperties": false
}
}cross_referenceAction
Compares two or more evidence items/suspects and returns detected contradictions between them, with summaries. This is how you verify alibis against logs. Also returns anything else in the case these items contradict.
View tool JSON
{
"name": "cross_reference",
"kind": "act",
"impl": "imperative",
"description": "Compares two or more evidence items/suspects and returns detected contradictions between them, with summaries. This is how you verify alibis against logs. Also returns anything else in the case these items contradict.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"description": "Two or more evidence/suspect ids."
}
},
"required": [
"caseId",
"itemIds"
],
"additionalProperties": false
}
}pin_evidenceAction
Pins an evidence card or suspect dossier onto the shared corkboard. The pin is staged as a pending proposal — the player must approve before it appears. Always state your reason; pins without clear investigative purpose will be rejected by the player.
View tool JSON
{
"name": "pin_evidence",
"kind": "act",
"impl": "imperative",
"description": "Pins an evidence card or suspect dossier onto the shared corkboard. The pin is staged as a pending proposal — the player must approve before it appears. Always state your reason; pins without clear investigative purpose will be rejected by the player.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
},
"itemId": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"caseId",
"itemId",
"reason"
],
"additionalProperties": false
}
}add_noteAction
Attaches an annotation to an already-pinned item (give the pinned item's id). Staged for player approval. Use for timeline reconstructions, open questions, or links between cards.
View tool JSON
{
"name": "add_note",
"kind": "act",
"impl": "imperative",
"description": "Attaches an annotation to an already-pinned item (give the pinned item's id). Staged for player approval. Use for timeline reconstructions, open questions, or links between cards.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
},
"pinItemId": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"caseId",
"pinItemId",
"text"
],
"additionalProperties": false
}
}propose_theoryAction
Stages a theory card on the board: your claim, the evidence ids that support it, and any open questions. The player accepts, challenges, or retracts it. Theories must cite at least two pieces of evidence — speculation without citations is not detective work.
View tool JSON
{
"name": "propose_theory",
"kind": "act",
"impl": "imperative",
"description": "Stages a theory card on the board: your claim, the evidence ids that support it, and any open questions. The player accepts, challenges, or retracts it. Theories must cite at least two pieces of evidence — speculation without citations is not detective work.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
},
"claim": {
"type": "string",
"description": "One-sentence theory, e.g. 'The poison was in the medication, not the tea.'"
},
"supportingEvidenceIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"openQuestions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"caseId",
"claim",
"supportingEvidenceIds"
],
"additionalProperties": false
}
}request_accusation_reviewAction
When you believe the evidence is sufficient, request that the PLAYER consider accusing a suspect. You cannot accuse anyone yourself — this tool stages a formal recommendation with your reasoning, and the player alone decides whether to end the game with an accusation.
View tool JSON
{
"name": "request_accusation_review",
"kind": "act",
"impl": "imperative",
"description": "When you believe the evidence is sufficient, request that the PLAYER consider accusing a suspect. You cannot accuse anyone yourself — this tool stages a formal recommendation with your reasoning, and the player alone decides whether to end the game with an accusation.",
"inputSchema": {
"type": "object",
"properties": {
"caseId": {
"type": "string",
"description": "Case id. Use 'vigil-karura-house'."
},
"suspectId": {
"type": "string"
},
"reasoning": {
"type": "string"
}
},
"required": [
"caseId",
"suspectId",
"reasoning"
],
"additionalProperties": false
}
}