telegram-inline-button-promotelisted
Install: claude install-skill williamblair333/Uncle-J-s-Refinery
## When to use
Use this skill when you want to replace a multi-step Telegram text command (e.g. `promote <id>` → `promote <id> global`) with a single inline button press baked into the outbound notification itself.
Applies to projects that:
- Send Telegram notifications via a shell/Python notify lib
- Run a polling bot that reads `getUpdates` in a loop
- Currently use a two-step confirm flow for a privileged action
## Prerequisites
- The notify lib must expose a function that accepts a `reply_markup` / inline keyboard argument (e.g. `notify_send_pitch` vs the simpler `notify_send_text`).
- The polling bot must be editable Python or shell.
## Key steps
### 1. Check memory and notify lib first
mempalace_search("<feature area> promote flow")
# Then read lib/notify.sh (or equivalent) to find the pitch/button function
### 2. Add the inline button to the outbound notification
Replace the plain-text send call with the one that accepts `reply_markup`:
# Before
notify_send_text(chat_id, text)
# After — inline_keyboard is a list-of-rows, each row a list of buttons
reply_markup = {
"inline_keyboard": [[
{"text": "✅ Promote Global", "callback_data": f"promote_global:{item_id}"}
]]
}
notify_send_pitch(chat_id, text, reply_markup=reply_markup)
### 3. Subscribe the polling bot to callback_query updates
In `getUpdates`, add `callback_query` to `allowed_updates`:
params = {
"offset": offset,
"timeout": 30,
"allowed_updates": ["message", "callback_query"]