artifacts/bundle/skills/ehaye/telegram-setup/SKILL.md
# Telegram Setup for ehAye Dojo This skill is your playbook when a user asks Dojo to set up Telegram on their machine and you cannot see the project source. Walk them through the **Personal bots** flow first — it is the recommended product path. Only fall back to **Group setup** if they explicitly want shared/team visibility. ## Mental model (read first) ehAye Engine has **two Telegram flavors**. Only one is active at a time: | Flavor | When to use
npx skillsauth add neekware/ehayeskills artifacts/bundle/skills/ehaye/telegram-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill is your playbook when a user asks Dojo to set up Telegram on their machine and you cannot see the project source. Walk them through the Personal bots flow first — it is the recommended product path. Only fall back to Group setup if they explicitly want shared/team visibility.
ehAye Engine has two Telegram flavors. Only one is active at a time:
| Flavor | When to use | Listens to | Sends to | | --------------------------- | ------------------------------------------ | ------------------------------------------------ | ------------------------ | | Personal bots (default) | A single user, private 1:1 chats | Their paired private Telegram chat per Dojo lane | Same paired private chat | | Group setup (advanced) | Teams, observers, demos, shared visibility | Configured Telegram group chat IDs | Same groups |
Hard rules to enforce in your guidance:
Settings → Remote Access & Notifications → Telegram. The other flavor’s saved keys stay on disk but are dormant.Enabled switch is the master kill switch for Telegram.If you ever see PIN/wake-word in screenshots or older docs, treat them as out-of-date and skip.
After setup, each lane the user configures will have:
/ehaye:pair <code> messageNo groups. No admin rights. No privacy-mode toggles. No chat ID hunting. No getUpdates.
For each lane the user wants (start with Primary):
Open BotFather
@BotFather (verified blue checkmark).Create a bot
/newbot.Dojo Primary or Val Dojo)._bot (e.g. val_dojo_primary_bot). Try variants if taken.Copy the bot token
123456789:ABC....Open Dojo Settings
ehAye Engine → Settings → Remote Access & Notifications → Telegram.Personal bots card is selected (it shows the small green checkmark).Paste the token
Primary private bot (or Secondary private bot for the secondary lane).Connect.Pair the bot
/ehaye:pair 482913.Open bot in Telegram and a copy icon./ehaye:pair <code>.Check pairing.Connected to <Name> (@username) in green.Save and enable
Enabled switch is on.Save.Smoke test
hey or any short message.Repeat for Secondary if the user wants it. Skipping Secondary is fine.
Once a lane is paired, these commands work in that bot chat:
| Type | Meaning |
| ---------------------------- | -------------------------------- |
| help or 1 | Show help |
| status or 2 | Show this lane’s Telegram status |
| telegram on or 3 | Turn this lane’s Telegram ON |
| telegram off or 4 | Turn this lane’s Telegram OFF |
| verbosity brief or 5 | Brief replies |
| verbosity talkative or 6 | Paragraph replies |
| verbosity chatty or 7 | Detailed replies |
3 / 4 toggle the per-lane flag, not the master switch. The master Enabled switch in Settings is the only way to disable the whole Telegram integration.
getMe./ehaye:pair <code>.chatId, userId, bot username, and pairedAt.Use this only when the user explicitly wants a team/observer/demo experience. It is more work and exposes group access-control decisions to the user.
High level:
-100…).Group setup card.@BotFather → /newbot. Copy the token./setprivacy → select the bot → Disable.
ehAye Dojo (P) for PrimaryehAye Dojo (S) for Secondary-100…). Two reliable methods:
https://api.telegram.org/bot<BOT_TOKEN>/getUpdates
Look for chat.id and chat.title matching the group. Copy the negative number.Group setup card.Group Bot Token.Primary Chat ID and Secondary Chat ID.Test next to each chat to verify a message arrives.Enabled switch on.ehAye Engine no longer enforces a PIN or wake-word for Telegram commands. Trust is delegated to Telegram group membership/permissions.
Ask: “Are you setting this up for just you, or do you want others to see/use Dojo through Telegram?”
| Symptom | Likely cause | Fix |
| ------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Pairing never completes | Wrong bot opened in Telegram, code mistyped, or code expired | Click Connect again to get a fresh code; ensure the bot username in the dialog matches the bot in Telegram |
| Pairing succeeds but bot ignores messages | Lane Telegram is off (primaryTelegram/secondaryTelegram) | Send 3 in the bot chat (or telegram on); or toggle in Settings |
| Personal bot suddenly silent | Master Enabled is off, or mode switched to Group setup | Re-enable master switch; reselect Personal bots |
| Group bot replies but UI never showed the message | A stale ehAyeEngine process is running from an old install/dev build | Quit /Applications/ehAyeEngine.app (and its sidecar) and any older dev backends; only one Telegram process should be live |
| Group setup test message fails | Bot is not in the group, not an admin, or wrong chat ID | Re-add bot as admin, recheck chat ID via getUpdates |
| Group bot reads /commands only | Privacy mode is still enabled | BotFather → /setprivacy → Disable, then remove and re-add the bot to the group |
| User reports two messages on each reply | Both Personal and Group were briefly enabled by old code | Confirm there’s only one ehAyeEngine process; switch mode and save once to settle settings |
If something’s still wrong: look at temp/ehaye/logs/be/ehaye-d-be-*.log. Telegram lines are prefixed 📨 TelegramService. Confirm there’s only one backend process talking to Telegram.
If a user also wants Portal alerts (separate product from Dojo):
TELEGRAM_BOT_TOKEN (and recipient chat ID) in Portal env.This is independent of the Dojo flavor selected above.
| Command | Purpose |
| ------------- | ------------------------------------------- |
| /newbot | Create a new bot |
| /mybots | List/manage your bots |
| /setprivacy | Toggle group privacy mode (group flow only) |
| /setname | Rename the bot |
| /setuserpic | Set bot avatar |
| /revoke | Revoke the bot token (issues a new one) |
If a token leaks: /revoke immediately, then paste the new token into the same Primary private bot or Secondary private bot field and re-pair.
Creator: Ehaye License: MIT Source Repo:
neekware/ehaye-skillsSource Bucket:ehayeOriginal Path:ehaye/telegram-setup
testing
/em -stress-test — Business Assumption Stress Testing
research
/em -postmortem — Honest Analysis of What Went Wrong
development
/em -hard-call — Framework for Decisions With No Good Options
research
/em -challenge — Pre-Mortem Plan Analysis