Best use case
channel-truth-run is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Automatic channel and contact synchronization
Teams using channel-truth-run should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/channel-truth-run/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How channel-truth-run Compares
| Feature / Agent | channel-truth-run | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Automatic channel and contact synchronization
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Channel Truth Run > Runs the Channel Truth Agent to synchronize last_contact timestamps ## When to use - "run channel truth" - "update last contact dates" - "synchronize contact dates" - "run channel truth agent" ## What it does Channel Truth Agent: 1. Loads all activities from `activities.csv` 2. Finds the most recent communication for each contact 3. (Optionally) Scans channels (Email, Telegram, WhatsApp, LinkedIn) 4. Merges data and resolves conflicts 5. Updates `people.csv`, `leads.csv`, `clients.csv` with current dates 6. Generates a report (stale/hot contacts) 7. Sends summary to Telegram ## How to execute ### Run modes ```bash # Full run (default) cd $AGENTS_PATH/channel-truth python3 channel_truth_agent.py # Dry-run (read only, no writes) python3 channel_truth_agent.py --dry-run # Single contact (for debugging) python3 channel_truth_agent.py --person-id=p-acme-001 # Without channel scanning (activities.csv only) python3 channel_truth_agent.py --no-channels ``` ### Pre-run checks ```bash # Check if activities.csv exists ls -lh $CRM_PATH/activities.csv # Check people.csv ls -lh $CRM_PATH/contacts/people.csv # Dry-run test python3 channel_truth_agent.py --dry-run ``` ### After run ```bash # View report ls -lt $AGENTS_PATH/reports/channel_truth_*.md | head -1 # View latest report cat $(ls -t $AGENTS_PATH/reports/channel_truth_*.md | head -1) # View logs tail -20 $AGENTS_PATH/logs/channel_truth.json ``` ## Output 1. **Updated CSV files:** - `people.csv` - added `last_contact` and `last_updated` - `leads.csv` - added `last_contact_via_primary` - `clients.csv` - added `last_contact_via_primary` 2. **Report:** - `$AGENTS_PATH/reports/channel_truth_YYYY-MM-DD.md` 3. **Backup files:** - `people.csv.bak.TIMESTAMP` - `leads.csv.bak.TIMESTAMP` - `clients.csv.bak.TIMESTAMP` 4. **Telegram notification:** - Summary: how many updated, hot/stale contacts ## Rollback If something went wrong: ```bash # Rollback via backup cd $CRM_PATH/contacts/ ls -lt people.csv.bak.* | head -1 cp people.csv.bak.YYYYMMDD_HHMMSS people.csv cd ../relationships/ cp leads.csv.bak.YYYYMMDD_HHMMSS leads.csv cp clients.csv.bak.YYYYMMDD_HHMMSS clients.csv # Or via git cd $PROJECT_ROOT git log --oneline sales/crm/ git revert <commit-hash> ``` ## Schedule Agent runs automatically via launchd: - **Time**: 02:00 daily (after email agent) - **Plist**: `~/Library/LaunchAgents/com.yourcompany.channel-truth-agent.plist` ```bash # Check status launchctl list | grep channel-truth # Reload launchctl unload ~/Library/LaunchAgents/com.yourcompany.channel-truth-agent.plist launchctl load ~/Library/LaunchAgents/com.yourcompany.channel-truth-agent.plist ``` ## Troubleshooting ### "activities.csv not found" ```bash # Check path ls -l $CRM_PATH/activities.csv # If missing - create a basic one echo "activity_id,person_id,company_id,product_id,type,channel,direction,subject,notes,date,created_by" > activities.csv ``` ### "Telegram notification failed" ```bash # Check Telegram credentials ls -l $SALES_PATH/telegram/sessions/ # Test tg-tools cd $TG_TOOLS_PATH python3 -c "from tg_utils.auth import get_client; import asyncio; asyncio.run(get_client())" ``` ### "Channel API failure" ```bash # Skip channel scanning python3 channel_truth_agent.py --no-channels ``` ## Related skills - `log-activity` - logs activities in activities.csv - `git-workflow` - for committing changes (if needed) - `telegram-send` - for manually sending messages ## Usage example ```bash # User: "run channel truth in dry-run" cd $AGENTS_PATH/channel-truth python3 channel_truth_agent.py --dry-run # View what will be changed cat /tmp/channel-truth-output.txt # If everything is ok - run for real python3 channel_truth_agent.py # View report cat $(ls -t $AGENTS_PATH/reports/channel_truth_*.md | head -1) ``` ## Notes - Agent is idempotent (can be run multiple times) - Always backs up before modifying CSV - If a channel is unavailable - skips with warning - activities.csv - primary source of truth - Channel archives - supplementary (for verification)
Related Skills
weixin-channels-publish
微信视频号助手网页版视频发布全流程。通过浏览器自动化操控 channels.weixin.qq.com 完成登录检测、扫码登录、上传视频、填写描述和短标题、截图确认后发布或保存草稿。触发场景:用户需要发布视频到视频号、视频号发布、视频号上传视频、发视频号。
wechat-channel
微信 (WeChat) 与 OpenClaw 的双向集成通道。基于 Wechaty + PadLocal 实现微信消息的接收和发送,支持私聊、群聊、@提及检测、图片/文件传输。当需要通过微信与 AI 助手交互、接收微信消息触发 AI 响应、或从 OpenClaw 发送消息到微信时使用此技能。
sergei-mikhailov-tg-channel-reader
Read posts and comments from Telegram channels via MTProto (Pyrogram or Telethon). Fetch recent messages and discussion replies from public or private channels by time window.
feishu-channel
飞书 (Lark/Feishu) 与 OpenClaw 的双向集成通道。通过飞书机器人实现消息的接收和发送,支持私聊、群聊、@提及检测、卡片消息、文件传输。当需要通过飞书与 AI 助手交互、接收飞书消息触发 AI 响应、或从 OpenClaw 发送消息到飞书时使用此技能。与 feishu-automation 的区别:本 skill 专注于消息通道集成,feishu-automation 专注于飞书平台自动化操作(多维表格、文档等)。
wemp-operator
> 微信公众号全功能运营——草稿/发布/评论/用户/素材/群发/统计/菜单/二维码 API 封装
zsxq-smart-publish
Publish and manage content on 知识星球 (zsxq.com). Supports talk posts, Q&A, long articles, file sharing, digest/bookmark, homework tasks, and tag management. Use when publishing content to 知识星球, creating/editing posts, uploading files/images/audio, managing digests, batch publishing, or formatting content for 知识星球.
zoom-automation
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
zoho-crm-automation
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
ziliu-publisher
字流(Ziliu) - AI驱动的多平台内容分发工具。用于一次创作、智能适配排版、一键分发到16+平台(公众号/知乎/小红书/B站/抖音/微博/X等)。当用户需要多平台发布、内容排版、格式适配时使用。触发词:字流、ziliu、多平台发布、一键分发、内容分发、排版发布。
zhihu-post-skill
> 知乎文章发布——知乎平台内容创作与发布自动化
zendesk-automation
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
youtube-knowledge-extractor
This skill performs deep analysis of YouTube videos through **both information channels** Multimodal YouTube video analysis through both audio (transcript) and visual (frame extraction + image analysis) channels. Especially powerful for HowTo videos, tutorials, demos, and explainer videos where what is SHOWN (screenshots, UI demos, diagrams, code, physical actions) is just as important as what is SAID. Use this skill whenever a user wants to analyze, summarize, or create step-by-step guides from YouTube videos, or when they share a YouTube URL and want to understand what happens in the video. Triggers on requests like "Analyze this YouTube video", "Create a step-by-step guide from this video", "What does this video show?", "Summarize this tutorial", or any YouTube URL shared with analysis intent.