CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ask-user

Reusable pattern for presenting the user with explicit choices and gating execution until they respond. Used by other skills when a decision point requires human input before proceeding. Platform-agnostic — works on Telegram (inline buttons), Discord, CLI, or any agent with a message tool.

Quality

73%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/ask-user/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

73%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable and workflow-clear: concrete templates, worked examples, and explicit response-handling fallbacks make the gate pattern executable as written. Its main weakness is redundancy — the Contract's rules are restated across Constraints, How To Gate, Anti-Patterns, and Output Format, so roughly a third of the file could be cut without losing information — plus one dangling external reference.

Suggestions

Collapse the redundant sections: delete Constraints (all four bullets duplicate the Contract) and Output Format (duplicates the How To Present Choices template), folding any unique rationale into the Contract or Anti-Patterns.

State each core rule once in the Contract and let Anti-Patterns carry only the rationale/why, so "2-4 options" and "stop the turn" are not repeated verbatim in three or four places.

Fix or inline the dangling ../conventions/agent-operator-protocol.md reference — either ship the file in the bundle or summarize the relevant error-handling steps directly in SKILL.md.

DimensionReasoningScore

Conciseness

The core rules are restated three to four times across sections: "2-4 options (no more — decision paralysis...)" (Contract), "2-4 options max. More than 4 creates decision paralysis." (Constraints), and "More than 4 options. Decision paralysis is real." (Anti-Patterns); "stop the turn" appears in Contract, How To Gate ("you MUST stop your turn"), and Output Format; and the choice-message template appears nearly verbatim in both How To Present Choices and Output Format. This is noticeably verbose with padded duplicate sections (Constraints and Output Format add almost no new information), beyond the 'could be tightened' midpoint; not a 1 because nothing explains concepts Claude already knows and all content is on-topic.

2 / 5

Actionability

Fully copy-paste-ready guidance: three concrete message templates (numbered options, JSON buttons, the clarify tool), ✅/❌ label examples ("Merge — combine with existing page" vs "Option 1"), three complete worked examples (cold-start, filing, destructive operation), and specific response mappings ("the first one" / "A" / "1" → first option; "merge" → fuzzy match). For an instruction-only skill this covers the common cases completely.

5 / 5

Workflow Clarity

The process is clearly sequenced ("1. Present the choices 2. Explicitly stop the current turn 3. The user's response triggers the next turn 4. Read the response and branch accordingly") with explicit feedback loops: "If unclear, ask again", "'actually, none of those' → present alternatives or ask what they want", and "Unrelated message → the user moved on; drop the gate". The skill is itself the validation gate for destructive operations and includes error-recovery paths, so the destructive-operations cap does not apply; the single action is unambiguous.

5 / 5

Progressive Disclosure

The body is well-organized into clear sections with one clearly-signaled, one-level-deep reference ("[agent operator protocol](../conventions/agent-operator-protocol.md)"). However, that reference target does not exist in this bundle (a dangling link), and the single 245-line file is well past the under-50-line simple-skill case, with worked examples and formatting guidance that could live in separate files. Good structure with minor gaps, not a 5.

4 / 5

Total

16

/

20

Passed

Description

62%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description clearly states both what the skill does and when it is used, in third person, with a distinct niche as a reusable pattern for other skills. It is held back by listing only two concrete actions and by moderate natural-keyword coverage — "gating execution" is jargon and common user phrasings are left to the separate triggers field rather than the description itself.

Suggestions

Add one or two more concrete actions to the description (e.g., handling the user's response and branching, formatting self-explanatory option labels with a mandatory escape hatch) to lift specificity beyond two actions.

Weave natural user phrasings into the description itself (e.g., "Use when the user should be asked to choose between options, confirm a destructive action, or pick a filing destination") rather than relying solely on the separate triggers list.

Replace or gloss the jargon term "gating execution" with plainer language like "pausing and waiting for the user's answer".

DimensionReasoningScore

Specificity

Names two concrete actions — "presenting the user with explicit choices and gating execution until they respond" — plus platform specifics (Telegram inline buttons, Discord, CLI), but coverage stops there (no mention of response handling or option formatting). This matches the anchor for naming the domain with 1-2 concrete actions; it is not a 4 because only two actions are listed rather than 'several specific actions'.

3 / 5

Completeness

Explicitly answers both: what ("presenting the user with explicit choices and gating execution until they respond") and when ("Used by other skills when a decision point requires human input before proceeding"). Not a 5 because the when-clause describes an invocation context rather than concrete user-facing trigger phrases; not a 3 because explicit trigger guidance is present, so the missing-'Use when' cap does not apply.

4 / 5

Trigger Term Quality

Contains some relevant natural keywords ("explicit choices", "decision point", "requires human input") but "gating execution" is internal jargon and common user phrasings like "ask me", "give me options", or "confirm before deleting" are absent from the description field itself. Not a 4 because keyword coverage is partial rather than 'good with a few missing'.

3 / 5

Distinctiveness Conflict Risk

"Reusable pattern... gating execution until they respond" carves out a mostly distinct niche (a choice-gate pattern consumed by other skills), with only minor overlap risk against generic confirmation/clarification skills. Not a 5 because terms like "explicit choices" and "human input" are not unique enough to guarantee minimal conflict with other interactive-decision skills.

4 / 5

Total

14

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 1 suspicious

Warning

Total

14

/

16

Passed

Repository

garrytan/gbrain

Path

skills/ask-user/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.