gradeNot graded
askew_get_contextAnswer
Call this first after the user selects an element. Returns only the current selection identity, indexed source status, exact className, safe computed styles, visible-instance count, and frequency-ranked runtime design context. It excludes form values, page copy, credentials, cookies, storage, and unrelated content. If several instances share the source, warn the user before proposing a source edit.
View tool JSON
{
"name": "askew_get_context",
"kind": "answer",
"impl": "imperative",
"description": "Call this first after the user selects an element. Returns only the current selection identity, indexed source status, exact className, safe computed styles, visible-instance count, and frequency-ranked runtime design context. It excludes form values, page copy, credentials, cookies, storage, and unrelated content. If several instances share the source, warn the user before proposing a source edit.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"selectionId": {
"type": "string",
"description": "Optional current Askew selection ID. When provided, stale IDs are rejected."
}
}
}
}askew_diagnose_selectionAction
Call after askew_get_context when the user describes a visual problem such as ‘this looks cheap.’ Requires the exact current selectionId, measures spacing, radius, contrast, type-scale, and cross-instance alignment, updates Askew’s visible inspector, and returns the identical findings. A variant may remove only tokens present in the selected element's exact className; if fixableAtSelection is false, ask the user to select the indicated descendant instead — alignment findings are never fixable through a token and should be explained, not staged. Do not invent a finding when Askew reports uncertainty.
View tool JSON
{
"name": "askew_diagnose_selection",
"kind": "act",
"impl": "imperative",
"description": "Call after askew_get_context when the user describes a visual problem such as ‘this looks cheap.’ Requires the exact current selectionId, measures spacing, radius, contrast, type-scale, and cross-instance alignment, updates Askew’s visible inspector, and returns the identical findings. A variant may remove only tokens present in the selected element's exact className; if fixableAtSelection is false, ask the user to select the indicated descendant instead — alignment findings are never fixable through a token and should be explained, not staged. Do not invent a finding when Askew reports uncertainty.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"selectionId": {
"type": "string",
"description": "The exact selectionId returned by askew_get_context."
}
},
"required": [
"selectionId"
]
}
}askew_stage_variantsAction
Call only after diagnosis. Stage exactly three complete Tailwind token alternatives in A/B/C order for the current selection. This changes Askew’s in-memory inspector state only: it never writes a file or calls the patch endpoint. Every remove token must exist on the selected element's exact className; never use a token found only on a descendant. The human must preview, pin, and click Apply separately.
View tool JSON
{
"name": "askew_stage_variants",
"kind": "act",
"impl": "imperative",
"description": "Call only after diagnosis. Stage exactly three complete Tailwind token alternatives in A/B/C order for the current selection. This changes Askew’s in-memory inspector state only: it never writes a file or calls the patch endpoint. Every remove token must exist on the selected element's exact className; never use a token found only on a descendant. The human must preview, pin, and click Apply separately.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"selectionId": {
"type": "string",
"description": "The exact current Askew selection ID."
},
"variants": {
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"enum": [
"A",
"B",
"C"
]
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"rationale": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"remove": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 8
},
"add": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 8
}
},
"required": [
"id",
"label",
"rationale",
"remove",
"add"
]
}
}
},
"required": [
"selectionId",
"variants"
]
}
}askew_inspect_interactionAnswer
Inspect the current selected element in normal, direct hover, or native focus state. Use this for live behavior that a screenshot cannot preserve. Requires the exact current selectionId. Unsupported selector shapes are declined explicitly; this tool never writes source.
View tool JSON
{
"name": "askew_inspect_interaction",
"kind": "answer",
"impl": "imperative",
"description": "Inspect the current selected element in normal, direct hover, or native focus state. Use this for live behavior that a screenshot cannot preserve. Requires the exact current selectionId. Unsupported selector shapes are declined explicitly; this tool never writes source.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"selectionId": {
"type": "string",
"description": "The exact current Askew selection ID."
},
"state": {
"type": "string",
"enum": [
"normal",
"hover",
"focus"
],
"description": "The live interaction state to inspect."
}
},
"required": [
"selectionId",
"state"
]
}
}