skills: add numbered-option trigger to telegram buttons

This commit is contained in:
Eve
2026-04-15 22:57:50 +08:00
parent bf1e15177b
commit b5dafdb287

View File

@@ -1,6 +1,6 @@
--- ---
name: telegram-inline-buttons name: telegram-inline-buttons
description: Use when sending proactive Telegram messages that ask Eric to confirm, choose, defer, or pick from a few next actions; especially for yes/no, A/B/C, do-now-vs-later, or short multi-step button flows. description: Use when sending proactive Telegram messages that ask Eric to confirm, choose, defer, or pick from a few next actions; especially for yes/no, A/B/C, do-now-vs-later, short multi-step button flows, or numbered option lists like 1.xxx / 2.ooo / 3.yyy that should be converted into inline buttons.
--- ---
# Telegram Inline Buttons # Telegram Inline Buttons
@@ -12,6 +12,7 @@ Prefer inline buttons over free-text prompts when sending a proactive Telegram m
- A / B / C choices - A / B / C choices
- Do it now vs later - Do it now vs later
- Picking one of a few next actions - Picking one of a few next actions
- Numbered option lists like `1.xxx`, `2.ooo`, `3.yyy`
## Do not use buttons for ## Do not use buttons for
- Purely informational messages - Purely informational messages
@@ -25,11 +26,13 @@ If there are >5 options, summarize and offer a `Show more` button.
- 2-4 buttons is ideal - 2-4 buttons is ideal
- Include a safe exit when appropriate: `Not now`, `Cancel`, `Later`, `Skip` - Include a safe exit when appropriate: `Not now`, `Cancel`, `Later`, `Skip`
- Keep `callback_data` stable and unique per flow step, e.g. `reminder_time_15m`, `deploy_confirm_yes` - Keep `callback_data` stable and unique per flow step, e.g. `reminder_time_15m`, `deploy_confirm_yes`
- When the source prompt is a numbered list, convert each visible option into a short button label while preserving the original order
Recommended layouts: Recommended layouts:
- Binary: one row `[Yes] [No]` - Binary: one row `[Yes] [No]`
- Decision + defer: row 1 `[Do it] [Not now]`, row 2 `[More info]` - Decision + defer: row 1 `[Do it] [Not now]`, row 2 `[More info]`
- A/B/C: one row `[A] [B] [C]` - A/B/C: one row `[A] [B] [C]`
- Numbered list: `[1] [2] [3]` or short labels derived from each option
## Telegram message tool pattern ## Telegram message tool pattern
For user-visible delivery, use `message(action="send")` with `buttons`. For user-visible delivery, use `message(action="send")` with `buttons`.
@@ -94,5 +97,15 @@ Buttons: `[Option A] [Option B] [Option C] [Not now]`
Text: `When should I remind you?` Text: `When should I remind you?`
Buttons: `[15m] [1h] [Tonight] [Tomorrow]` Buttons: `[15m] [1h] [Tonight] [Tomorrow]`
### Numbered options
Text:
```text
Pick one:
1. xxx
2. ooo
3. yyy
```
Buttons: `[1] [2] [3]` or `[xxx] [ooo] [yyy]`
## Decision rule ## Decision rule
Default to buttons whenever Eric is being asked to choose, confirm, defer, or select the next action on Telegram. Default to buttons whenever Eric is being asked to choose, confirm, defer, or select the next action on Telegram. This includes numbered lists that would otherwise require a reply like `1`, `2`, or `3`.