Present multiple clarifying questions as an interactive Telegram form using inline buttons. Use when the agent needs to ask the user 2 or more clarifying questions before proceeding with a task, and wants to present them all at once in a structured form layout with selectable options and an "Other" free-text escape hatch. Triggers when: gathering multi-faceted requirements, onboarding flows, preference collection, or any scenario requiring structured multi-question input from the user via Telegram.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install questions-form或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install questions-form⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/questions-form/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: questions-form description: > Present multiple clarifying questions as an interactive Telegram form using inline buttons. Use when the agent needs to ask the user 2 or more clarifying questions before proceeding with a task, and wants to present them all at once in a structured form layout with selectable options and an "Other" free-text escape hatch. Triggers when: gathering multi-faceted requirements, onboarding flows, preference collection, or any scenario requiring structured multi-question input from the user via Telegram. ---
Present multiple clarifying questions as a Telegram inline-button form. All questions appear at once; the user answers in any order, then submits.
Do not use this pattern for a single yes/no question — just send one message with buttons for that.
Define each question internally as an object:
{ id: "type", text: "What type of project?", options: ["Web App", "Mobile", "API"] }
{ id: "timeline", text: "What is your timeline?", options: ["This week", "This month", "No rush"] }
{ id: "budget", text: "Budget range?", options: ["< $1k", "$1k-5k", "$5k-10k", "> $10k"] }
Initialize internal tracking state:
form_state = { type: null, timeline: null, budget: null }
awaiting_freetext = null
form_submitted = false
Send a plain message (no buttons) as the form introduction:
{
"action": "send",
"channel": "telegram",
"message": "**I have a few questions before we proceed.**\nPlease answer each one by tapping a button, then tap Submit when done."
}
For each question, send a separate message with inline buttons. Put selectable options in rows of 2-3 buttons. Always put "Other" on its own last row.
The callback_data must follow this convention: form:
Example:
{
"action": "send",
"channel": "telegram",
"message": "**1. What type of project is this?**",
"buttons": [
[
{ "text": "Web App", "callback_data": "form:type:web" },
{ "text": "Mobile", "callback_data": "form:type:mobile" },
{ "text": "API", "callback_data": "form:type:api" }
],
[
{ "text": "Other (type your answer)", "callback_data": "form:type:other" }
]
]
}
{
"action": "send",
"channel": "telegram",
"message": "**2. What is your timeline?**",
"buttons": [
[
{ "text": "This week", "callback_data": "form:timeline:this_week" },
{ "text": "This month", "callback_data": "form:timeline:this_month" },
{ "text": "No rush", "callback_data": "form:timeline:no_rush" }
],
[
{ "text": "Other (type your answer)", "callback_data": "form:timeline:other" }
]
]
}
{
"action": "send",
"channel": "telegram",
"message": "**3. Budget range?**",
"buttons": [
[
{ "text": "< $1k", "callback_data": "form:budget:lt_1k" },
{ "text": "$1k-5k", "callback_data": "form:budget:1k_5k" }
],
[
{ "text": "$5k-10k", "callback_data": "form:budget:5k_10k" },
{ "text": "> $10k", "callback_data": "form:budget:gt_10k" }
],
[
{ "text": "Other (type your answer)", "callback_data": "form:budget:other" }
]
]
}
After all questions, send the submit/cancel message:
{
"action": "send",
"channel": "telegram",
"message": "**When you've answered all questions above, tap Submit.**",
"buttons": [
[{ "text": "\u2713 Submit All Answers", "callback_data": "form:submit" }],
[{ "text": "\u2717 Cancel", "callback_data": "form:cancel" }]
]
}
When you receive a callback starting with form::
Regular option (form: where value is not other):
form_state[qid] = value"Got it -- : " "Other" option (form:):
"Type your answer for: " awaiting_freetext = qidform_state[qid] = "Got it -- : " awaiting_freetextSubmit (form:submit):
form_state for any null values"You still need to answer: "
form_submitted = true and proceed with the collected answersCancel (form:cancel):
form_state"Form cancelled. Let me know how you'd like to proceed."Once submitted, reference the collected answers as structured data and proceed:
Collected: { type: "mobile", timeline: "End of March", budget: "1k_5k" }
Now continue with the original task using these clarified requirements.
Users can click a different button for any question at any time before submitting. Simply overwrite the previous value and acknowledge the change:
"Updated --
form: prefixform:: form:"Other (type your answer)""\u2713 Submit All Answers""\u2717 Cancel"See references/form-patterns.md for:
安装 Questions Form 后,可以对 AI 说这些话来触发它
Help me get started with Questions Form
Explains what Questions Form does, walks through the setup, and runs a quick demo based on your current project
Use Questions Form to present multiple clarifying questions as an interactive Telegram fo...
Invokes Questions Form with the right parameters and returns the result directly in the conversation
What can I do with Questions Form in my product manager workflow?
Lists the top use cases for Questions Form, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/questions-form/ 目录(个人级,所有项目可用),或 .claude/skills/questions-form/(项目级)。重启 AI 客户端后,用 /questions-form 主动调用,或让 AI 根据上下文自动发现并使用。
Questions Form 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Questions Form 可免费安装使用。请查阅仓库了解许可证信息。
Present multiple clarifying questions as an interactive Telegram form using inline buttons. Use when the agent needs to ask the user 2 or more clarifying questions before proceeding with a task, and wants to present them all at once in a structured form layout with selectable options and an "Other" free-text escape hatch. Triggers when: gathering multi-faceted requirements, onboarding flows, preference collection, or any scenario requiring structured multi-question input from the user via Telegram.
Automate my product manager tasks using Questions Form
Identifies repetitive steps in your workflow and sets up Questions Form to handle them automatically
Questions Form 属于「Product Manager」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。