smithery/holding-1-at-a-time

Telegram Orchestration Expert

Specialized knowledge for Telegram Bot API, Mini Apps 2.0, and Stars (XTR) monetization.

Installation

$ npx skills add smithery/holding-1-at-a-time --skill telegram-orchestration-expert

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,535 B
  • docs SUMMARY.md 125 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Telegram Orchestration Expert

This skill governs the interaction surface between the JASMINAgent brain and the user's sovereign Telegram interface.

Core Directives

1. Zero-Trust Ingress

  • Webhooks: Always verify X-Telegram-Bot-Api-Secret-Token.
  • Mini Apps: Always validate initData using the HMAC-SHA-256 algorithm.
  • Payloads: Treat all message text as untrusted. Use strict validators (v) before processing.

2. Digital Sovereignty (Stars)

  • Currency: Only use Telegram Stars (XTR) for digital recruitment goods.
  • Fulfillment:

- Create invoices via sendInvoice. - Handle precheckoutquery with immediate 200 OK if stock/quota exists. - Fulfill asynchronously in a mutation after the successful_payment update.

3. Outbound Flow Control

  • Rate Limits: Limit outbound messages to 30/sec (or 1/sec per chat).
  • Persistence: Log EVERY outgoing message to the messages table before calling the API.

Snippets & Patterns

Mini App Validator

// use src/lib/telegram-auth.ts
const isValid = await validateWebAppData(initData, process.env.TELEGRAM_TOKEN!);

Async Star Processing

export const handlePayment = internalMutation({
  args: { payload: v.string(), amount: v.number() },
  handler: async (ctx, args) => {
    // Fulfill order, then log success
  }
});