Tool tree
gradeNot graded
gather_opinionsAction
Searches discussion sources (Reddit, Hacker News, forums) for what real users say about a topic, then clusters what they say into claims and puts them on the user's board. Use this when the user is deciding on something and wants first-hand opinions rather than marketing pages. `focus` narrows the gather, for example 'battery life' or 'after 6 months'.
View tool JSON
{
"name": "gather_opinions",
"kind": "act",
"impl": "imperative",
"description": "Searches discussion sources (Reddit, Hacker News, forums) for what real users say about a topic, then clusters what they say into claims and puts them on the user's board. Use this when the user is deciding on something and wants first-hand opinions rather than marketing pages. `focus` narrows the gather, for example 'battery life' or 'after 6 months'.",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The thing being decided on, e.g. \"Is the Dell XPS 14 good for dev work?\""
},
"focus": {
"type": "string",
"description": "Optional narrowing angle, e.g. \"battery life\", \"after 6 months\"."
}
},
"required": [
"topic"
]
}
}get_boardAnswer
Returns the current board: every claim with how many independent sources back it, which sources the user has marked trusted or rejected, which claims are pinned, and any constraints the user has applied. Call this before acting so you are working from the user's judgments, not your own assumptions.
View tool JSON
{
"name": "get_board",
"kind": "answer",
"impl": "imperative",
"description": "Returns the current board: every claim with how many independent sources back it, which sources the user has marked trusted or rejected, which claims are pinned, and any constraints the user has applied. Call this before acting so you are working from the user's judgments, not your own assumptions.",
"inputSchema": {
"type": "object",
"properties": {}
}
}drill_claimAnswer
Returns the underlying threads and paraphrased evidence lines behind one claim, including sources the user has rejected, so you can judge whether the claim actually holds up. Use claim ids from get_board.
View tool JSON
{
"name": "drill_claim",
"kind": "answer",
"impl": "imperative",
"description": "Returns the underlying threads and paraphrased evidence lines behind one claim, including sources the user has rejected, so you can judge whether the claim actually holds up. Use claim ids from get_board.",
"inputSchema": {
"type": "object",
"properties": {
"claimId": {
"type": "string",
"description": "Claim id from get_board."
}
},
"required": [
"claimId"
]
}
}mark_sourceAction
Applies the user's credibility judgment to one source and recomputes how much support every claim resting on it has. Use verdict 'rejected' when the user says a source is a shill, an affiliate listicle, or otherwise junk, and 'trusted' when they vouch for it. Rejected sources stay visible on the board, struck through.
View tool JSON
{
"name": "mark_source",
"kind": "act",
"impl": "imperative",
"description": "Applies the user's credibility judgment to one source and recomputes how much support every claim resting on it has. Use verdict 'rejected' when the user says a source is a shill, an affiliate listicle, or otherwise junk, and 'trusted' when they vouch for it. Rejected sources stay visible on the board, struck through.",
"inputSchema": {
"type": "object",
"properties": {
"sourceId": {
"type": "string",
"description": "Source id from get_board or drill_claim."
},
"verdict": {
"type": "string",
"enum": [
"trusted",
"rejected",
"neutral"
],
"description": "The user's judgment on this source."
},
"reason": {
"type": "string",
"description": "Short reason, shown next to the source on the board."
}
},
"required": [
"sourceId",
"verdict"
]
}
}filter_boardAction
Applies a constraint the user just stated in plain language, for example "ignore anything about gaming" or "only posts from people who own one". Claims that fall outside the constraint are hidden but not deleted. Pass constraint "clear" to drop every constraint and show the full board again.
View tool JSON
{
"name": "filter_board",
"kind": "act",
"impl": "imperative",
"description": "Applies a constraint the user just stated in plain language, for example \"ignore anything about gaming\" or \"only posts from people who own one\". Claims that fall outside the constraint are hidden but not deleted. Pass constraint \"clear\" to drop every constraint and show the full board again.",
"inputSchema": {
"type": "object",
"properties": {
"constraint": {
"type": "string",
"description": "The constraint in the user own words, or \"clear\"."
}
},
"required": [
"constraint"
]
}
}pin_claimAction
Marks a claim as decision-relevant, or unpins it. Pinned claims sort to the top and survive a re-gather, so pin the ones the user says actually matter to their decision.
View tool JSON
{
"name": "pin_claim",
"kind": "act",
"impl": "imperative",
"description": "Marks a claim as decision-relevant, or unpins it. Pinned claims sort to the top and survive a re-gather, so pin the ones the user says actually matter to their decision.",
"inputSchema": {
"type": "object",
"properties": {
"claimId": {
"type": "string",
"description": "Claim id from get_board."
},
"pinned": {
"type": "boolean",
"description": "true to pin, false to unpin. Defaults to true."
}
},
"required": [
"claimId"
]
}
}