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

72%

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 ./plugin/skills/ask-user/SKILL.md

The canonical home for this skill is ask-user in garrytan/gbrain

SKILL.md
Quality
Evals
Security

Quality

Content

71%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: concrete templates, platform-specific formats, complete worked examples, and an explicit stop-the-turn gate with response-handling feedback loops. Its weaknesses are redundancy (core rules repeated across three sections) and zero progressive disclosure — a 245-line monolith whose single external reference is unverifiable. Overall strong instructional content that would benefit from de-duplication and splitting reference material into a bundled file.

Suggestions

State each core rule (2-4 options, escape hatch, one question per message, self-explanatory labels) once — in the Contract — and let the Anti-Patterns section reference rather than restate them, trimming notable token redundancy.

Move the three full Examples and the emoji-prefix/formatting tables to a references/ file linked one level deep from SKILL.md, keeping the main file a lean overview.

Inline the essential steps from ../conventions/agent-operator-protocol.md (or bundle it) — the reference currently points outside the skill directory and may not resolve when the skill is loaded.

DimensionReasoningScore

Conciseness

All content is skill-specific with no filler, but the core rules ("2-4 options max", "Always include an escape hatch", "One question per message", "self-explanatory labels") are restated three times across the Contract, Constraints, and Anti-Patterns sections — mostly efficient but could be tightened, matching anchor 3.

3 / 5

Actionability

The body provides copy-paste-ready templates (the numbered message format, the buttons JSON, the clarify call, the Output Format skeleton), concrete label do/don't examples ("Merge — combine with existing page" vs "Option 1"), and three complete worked examples covering routing, filing, and destructive cases — fully executable guidance covering the common cases, matching anchor 5.

5 / 5

Workflow Clarity

The sequence is clear — present choices, "you MUST stop your turn", then the numbered response handling ("Read the response", "Acknowledge briefly", "Branch and execute", "If unclear, ask again") with a feedback loop and error handling in "When it fails" — but the workflow is distributed across Contract/How To Gate/How To Handle Response rather than one coherent sequence, leaving minor gaps versus anchor 5.

4 / 5

Progressive Disclosure

The single 245-line file is well-sectioned but everything is inlined — the three full Examples (~40 lines) and the emoji/formatting reference tables are candidates for a separate references file — and the only reference ("../conventions/agent-operator-protocol.md") points outside the skill bundle and cannot be verified, matching anchor 3 (structure present, content that should be separate is inline).

3 / 5

Total

15

/

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 communicates a specific pattern (choice presentation with turn-stopping) in third person with a present when-clause, but the when is oriented toward other skills rather than natural user triggers. Trigger-term coverage is moderate and leans on technical language like "gating execution". Overall a solid, distinct description with room for more natural user-facing trigger phrasing.

Suggestions

Add an explicit user-facing trigger clause to the description itself, e.g. "Use when the user should pick between options, confirm a destructive action, or must be asked before proceeding", so completeness reaches anchor 5 without relying on the separate when_to_use field.

Include natural trigger keywords users would actually say ("ask the user", "give me options", "confirm before proceeding") alongside the technical terms like "gating execution" to improve trigger_term_quality.

Name one or two additional concrete behaviors (e.g. "map free-text replies to options, handle Skip/Cancel escape hatches") to lift specificity from 1-2 actions toward comprehensive coverage.

DimensionReasoningScore

Specificity

The description names the domain and two concrete actions — "presenting the user with explicit choices and gating execution until they respond" — plus platform specifics ("Telegram (inline buttons), Discord, CLI"), but does not list several distinct actions, matching anchor 3 rather than 4.

3 / 5

Completeness

Both what ("presenting the user with explicit choices and gating execution") and when ("Used by other skills when a decision point requires human input before proceeding") are present, but the when-clause is framed for skill authors rather than as concrete user trigger phrases, so it sits between anchors 4 and 5.

4 / 5

Trigger Term Quality

Some relevant keywords appear ("explicit choices", "decision point", "human input"), but technical phrasing like "gating execution" is not what a user would naturally say, and common variations such as "ask me", "options", or "confirm before proceeding" are missing — anchor 3, not 4 which requires good coverage.

3 / 5

Distinctiveness Conflict Risk

The choice-gate niche ("presenting the user with explicit choices and gating execution until they respond") is mostly distinct with named platforms, though it could overlap with a generic confirmation/approval skill — anchor 4, not 5 since the when-clause does not include distinct trigger phrases.

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

plugin/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.