CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

64

Quality

76%

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

77%

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, with concrete templates, worked examples, and a clearly sequenced gated workflow that includes error recovery. Its main weaknesses are redundancy — the same rules recur across Contract, Constraints, and Anti-Patterns — and a monolithic structure with no file-level progressive disclosure.

Suggestions

Deduplicate the rules that recur across Contract, Constraints, and Anti-Patterns (option-count cap, escape hatch, stop-the-turn); state each once and have Anti-Patterns reference rather than restate them.

Move the three full worked examples and/or the platform-specific format blocks (Telegram JSON buttons, clarify tool) into a references/ file linked from the main body to introduce one-level-deep progressive disclosure.

Trim the 'What This Is' section, which re-explains behavior already stated in the Contract, to reduce token cost.

DimensionReasoningScore

Conciseness

Core rules are restated across the Contract, Constraints, and Anti-Patterns sections (e.g. '2-4 options max', 'Always include an escape hatch', 'you MUST stop your turn'), and the 'What This Is' section re-explains the contract — mostly efficient but padded with redundancy that could be tightened, anchor 2 rather than the lean anchor 3.

2 / 3

Actionability

It provides copy-paste-ready templates (the numbered-options block, the JSON buttons payload, the Output Format template), a concrete label format with ✅/❌ examples, specific text-response mapping rules, and three fully worked examples — fully actionable guidance for an instruction skill, anchor 3.

3 / 3

Workflow Clarity

The gated workflow is clearly sequenced (present choices → stop the turn → read response → acknowledge → branch and execute) with an explicit feedback loop ('If unclear, ask again') and text-response error recovery, plus the Contract/Constraints act as a checklist — anchor 3.

3 / 3

Progressive Disclosure

It is well-organized into clear sections, but it is a single ~237-line monolith with all platform-specific formats (Telegram JSON, clarify tool) and three detailed worked examples inline and no file-level references at all — 'content that should be separate is inline', anchor 2 rather than the split, one-level-deep anchor 3.

2 / 3

Total

10

/

12

Passed

Description

75%

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 covers both what the skill does and when to use it, occupies a distinct niche, and provides explicit trigger guidance via a triggers field. Specificity and trigger-term coverage are solid but not exhaustive, with one jargon trigger ('choice gate') and missing natural variations.

Suggestions

Replace the jargon trigger 'choice gate' with a natural user phrasing such as 'should I do X or Y' or 'let me choose', and add common variations users actually say.

Broaden the action list with one or two more concrete capability verbs (e.g. 'render inline buttons, present numbered options, branch on the response') to move specificity toward a comprehensive multi-action description.

DimensionReasoningScore

Specificity

Quotes 'presenting the user with explicit choices and gating execution until they respond' and 'Platform-agnostic — works on Telegram (inline buttons), Discord, CLI' — it names the domain and a couple of core actions plus platform specifics, but is not a comprehensive list of multiple concrete actions, so it matches anchor 2 rather than the multi-action anchor 3.

2 / 3

Completeness

It explicitly states 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'), plus a dedicated triggers field — clearly answering what AND when with explicit triggers, anchor 3.

3 / 3

Trigger Term Quality

The triggers field supplies natural phrasings ('present options', 'ask before proceeding') and the description offers 'decision point' and 'human input', but 'choice gate' is jargon and common user variations like 'should I do X or Y' or 'let me choose' are missing — moderate coverage, anchor 2, not the full natural-term coverage of anchor 3.

2 / 3

Distinctiveness Conflict Risk

It carves a distinct niche (a reusable decision-gating pattern used by other skills) with specific triggers ('present options', 'ask before proceeding', 'user decision') unlikely to collide with content-processing skills, matching anchor 3.

3 / 3

Total

10

/

12

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository
garrytan/gbrain
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.