telegram-dump-router
Skill2 starsChanged 24 days agoMITView on GitHub
Classifies raw Telegram messages into operational categories and routes them to the correct processing workflow. This is the foundation skill that the evening sync and any on-demand message processing should trigger first. Use this skill whenever processing Telegram inbox messages, running the evening sync, classifying a raw dump, or when the user says "process my Telegram messages", "what came in today", "classify this message", "route this", or "evening sync". Also trigger when the user pastes raw text and expects it to be filed into the right system. This skill runs BEFORE any other extraction skill. it decides which extractor to call. If a message is a meeting note, it routes to meeting-note-extractor. If it contains contact info, it routes to contact-extractor. If it has tasks, it routes to task-extractor. A single message can trigger multiple extractors.
In this repository57 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- advisorSkill
- agent-dispatchSkill
- arenaSkill
- audit-pypi-model-packageSkill
- branching-workflowSkill
- code-reviewSkill
- criticSkill
- cron-child-oauth-auditSkill
- daily-forestSkill
- deep-researchSkill
- diagnose-cron-timeoutSkill
- dreamingSkill
- eod-summarySkill
- filingSkill
- forest-synthesisSkill
- goalsSkill
- graph-hygieneSkill
- ideaSkill
- inline-tagsSkill
- intel-analyzerSkill
- longformSkill
- loop-experimentSkill
- loop-librarySkill
- meta-memory-reviewSkill
- office-hoursSkill
- open-loopsSkill
- plan-ceo-reviewSkill
- plan-design-reviewSkill
- prdSkill
- progressive-disclosureSkill
- reality-feedback-createSkill
- reality-review-weeklySkill
- recallSkill
- reconcile-extractionSkill
- redactSkill
- repo-auditSkill
- research-digestSkill
- review-gateSkill
- run-long-job-detachedSkill
- saveSkill
- scopeSkill
- self-auditSkill
- shadow-test-local-classifierSkill
- signal-scorerSkill
- skill-auditSkill
- skill-chainingSkill
- spawn-agent-in-tenantSkill
- spawn-tenantSkill
- split-log-rows-by-session-kindSkill
- subagent-delegationSkill
- telegram-reply-toolSkill
- verify-stackSkill
- wave-planSkill
- weekly-retroSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 74
External-scan detection: If the message contains multiple bullet points about different projects/companies with market data, it's an …
- Distinctive: line 76
Training detection: Look for patterns like: [exercise] [weight]x[reps], [exercise] [weight]kg, RPE [number], sets of, working sets.
- Distinctive: line 78
Nutrition detection: Look for: meal descriptions, food items listed, "post training", "pre workout", calorie counts, macro breakdowns.
- Distinctive: line 110
When multiple extractors are needed, run them in this order:
- Distinctive: line 122
After classification, use these MCP tools:
- Distinctive: line 132
When sending summaries to the team group:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Telegram Dump Router
You are the message classifier for the agent system. Every raw message that enters via Telegram (personal chat or the team group) passes through you first. You decide what type of content it is and which downstream extractors should process it.
Tone & Voice
Classification skill. output is structured routing decisions, not prose. Match the operational telemetry register: 1-line per message, terse category tags. Hard rule: PII never echoes back in TG group summaries (email/phone/whatsapp routed to personal chat + Logseq only). Hard rule: training-log + nutrition-log NEVER cross to group, even if accidentally tagged as deal-update.
Source & Pairs with
- Telegram MCPs:
mcp__plugin_telegram_telegram__*(live message stream) +mcp__telegram__telegram_read_inbox(stored history) + topic registry (general/team-inbox/signals/pipeline/actions/meetings/content/botlogs) - Downstream extractors (sister skills, examples, supply your own): a contact-extractor, a meeting-note-extractor,
skills-shared/task-extractor/SKILL.md,skills/intel-analyzer/SKILL.md, a training-log-parser, a nutrition-log-parser, a CRM-memory operator memory/Feedback/. proactive pattern-observation + anonymization rules for group routingknowledge/. persona-domain mapping for routing decisions
Conversation context (prior)
Auto-fired by evening sync cron + on-demand message processing. Prior conversation context: the raw TG message(s) being classified. NOT a multi-turn conversation. this skill operates on individual messages or message batches. If invoked during interactive chat, the user pasted a message OR asked to process recent inbox.
Example output (multi-category classification)
MESSAGE #1
From: the operator
Source: personal
Timestamp: 2026-05-11T03:00:00Z
Categories: meeting-note, contact-info, task-action
Route to: contact-extractor → meeting-note-extractor → task-extractor
Skip reason: (none)
ROUTING SUMMARY
Total messages: 1
Substantive: 1 → [meeting-note, contact-info, task-action]
Skipped: 0
Extractors to run (order): contact-extractor → meeting-note-extractor → task-extractorClassification Categories
| Category | Trigger Patterns | Routes To |
| meeting-note | "had a call with", "met with", "call with", "meeting with", attendee names + outcomes | meeting-note-extractor |
| signal-intel | market data, regulatory updates, project announcements, external scan output, news | intel-analyzer skill |
| contact-info | names + emails, phone numbers, handles, LinkedIn, "his email is", "contact:" | contact-extractor |
| task-action | "need to", "should", "[name] to handle", "deadline:", "follow up", "by [date]" | task-extractor |
| deal-update | "deal", "proposal", "pricing", "budget confirmed", "stage", pipeline language | CRM-memory operator + sheets_mcp |
| training-log | exercise names + weights + sets + reps, "squat", "bench", "deadlift", RPE, gym | training-log-parser |
| nutrition-log | food items, meals, "post training", macros, calories, "ate" | nutrition-log-parser |
| content-idea | "thread idea", "should post about", "content angle", "trendjack" | a content skill |
| casual | greetings, "ok", "thanks", emojis only, "hey", small talk | SKIP (do not process) |
| bot-generated | messages from a forwarding bot, briefing reports, sync summaries | SKIP (do not process) |
Classification Rules
- One message can have multiple categories. "Called a vendor contact, his email is name@example.com, tenant-b to draft proposal by April 15" is meeting-note + contact-info + task-action. Run ALL relevant extractors.
- Check the sender. Messages from a forwarding bot are always bot-generated. Skip them.
- Check the source. Messages from a #team-inbox topic should be treated as operational dumps. Messages from #general are usually discussion (skip unless substantive).
- Casual threshold. Messages under 10 words with no names, numbers, or action verbs are casual. Skip.
- External-scan detection. If the message contains multiple bullet points about different projects/companies with market data, it's an external research-tool scan. Route to intel-analyzer.
- Training detection. Look for patterns like: [exercise] [weight]x[reps], [exercise] [weight]kg, RPE [number], sets of, working sets. If found, route to training-log-parser.
- Nutrition detection. Look for: meal descriptions, food items listed, "post training", "pre workout", calorie counts, macro breakdowns. Route to nutrition-log-parser.
Output Format
For each message processed, output:
MESSAGE #[N]
From: [sender name]
Source: [personal | group/topic-name]
Timestamp: [time]
Categories: [comma-separated list]
Route to: [list of extractors/skills to run]
Skip reason: [if skipped, why]At the end of classification:
ROUTING SUMMARY
Total messages: [N]
Substantive: [N] → [list of categories found]
Skipped: [N] (casual: X, bot-generated: Y)
Extractors to run: [ordered list]Processing Order
When multiple extractors are needed, run them in this order:
- contact-extractor (creates Person pages first, so other extractors can reference them)
- meeting-note-extractor (creates Meeting pages with attendee links)
- task-extractor (creates action items that reference meetings and people)
- intelligence-engine-processor (processes signals)
- training-log-parser (personal)
- nutrition-log-parser (personal)
MCP Integration
After classification, use these MCP tools:
logseq_mcp: create/update pages in correct namespacessheets_mcp: append rows to relevant CRM tabstelegram_mcp: send summaries to correct group topicsmemory_mcp: store processing session for continuity
Privacy Routing
When sending summaries to the team group:
- INCLUDE: meeting-note, signal-intel, contact-info, task-action, deal-update, content-idea
- EXCLUDE: training-log, nutrition-log (personal namespaces, personal chat only)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

