| name | fft-telegram-ops |
| description | Operate FFT_nano Telegram workflows including main chat claiming, command safety boundaries, admin panel usage, media intake behavior, and Telegram-first deployment patterns. |
FFT Telegram Ops
Use this skill for Telegram onboarding, operations, and safe admin command handling.
When to use this skill
- Use when setting up or repairing Telegram bot routing in FFT_nano.
- Use when claiming/maintaining main chat and admin command boundaries.
- Use when verifying Telegram media intake and command policy behavior.
When not to use this skill
- Do not use for WhatsApp-only flows.
- Do not use for non-chat backend setup tasks unrelated to Telegram routing.
- Do not use to bypass main/admin restrictions for privileged commands.
Guardrails
- Never run destructive git commands unless explicitly requested.
- Preserve unrelated worktree changes.
- Main-chat-only enforcement is mandatory for admin/delegation operations.
Enable Telegram
- Set host env:
- Optional for secure main claiming:
TELEGRAM_ADMIN_SECRET=...
- Recommended Telegram-only dev mode:
WHATSAPP_ENABLED=0 ./scripts/start.sh dev telegram-only
Main Chat Setup
- DM the bot and run
/id.
- Claim main chat:
/main <secret> (requires TELEGRAM_ADMIN_SECRET)
- Alternative: set
TELEGRAM_MAIN_CHAT_ID and restart.
Command Policy
Available everywhere:
Main/admin chat only:
/main <secret>
/tasks
/task_pause <id>
/task_resume <id>
/task_cancel <id>
/groups
/reload
/panel
/coder <task>
/coder-plan <task>
Messaging Behavior
- Main chat responds to all messages.
- Non-main chats require trigger prefix
@<ASSISTANT_NAME> (default @FarmFriend).
- Coder delegation is rejected in non-main chats.
/delivery [stream|append|off|draft] controls Telegram text preview behavior for the current chat. It is not cron delivery.
/text_delivery is an alias for /delivery.
stream is the default durable preview message/edit mode.
append sends durable in-flight update blocks that remain in chat; the final answer is sent separately.
off disables preview streaming and sends only the final answer.
draft uses Telegram native sendMessageDraft for ephemeral in-flight previews; the final answer is still sent as a normal durable message.
Media Intake
- Telegram uploads are persisted under:
groups/<group>/inbox/telegram/
- Agent sees uploaded files as:
/workspace/group/inbox/telegram/...
- Size limit controlled by
TELEGRAM_MEDIA_MAX_MB.
Operational Checks
- Run
/status in Telegram to confirm runtime and channel state.
- Use
/panel in main chat for task/group/coder quick actions.
- If polling conflicts occur, stop duplicate FFT_nano instances.