skills/claude-skills-open/skills/pm/show-today/SKILL.md
Priority tasks for today — checks live sources (email, calendar) before showing stale CSV data
npx skillsauth add aaaaqwq/claude-code-skills show-todayInstall 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.
What to do today — reality-checked against live sources
email-read, timezone| What | Path |
|------|------|
| Tasks | $DATA_PATH/projects/pm/pm_tasks_master.csv |
| Projects | $DATA_PATH/projects/pm/pm_projects_master.csv |
| Leads | $DATA_PATH/sales/crm/relationships/leads.csv |
| People | $DATA_PATH/sales/crm/contacts/people.csv |
| Calendar script | $GOOGLE_TOOLS_PATH/read_calendar.py |
| Email script | $GOOGLE_TOOLS_PATH/read_emails.py |
| Python venv | $GOOGLE_TOOLS_PATH/.venv/bin/python3 |
CRITICAL: Always gather live state BEFORE reading CSVs.
Step 1: Live sources → calendar + inbox + sent (last 3 days)
Step 2: Static sources → leads.csv + pm_tasks_master.csv
Step 3: Reconcile → cross-reference emails with lead contacts
Step 4: Display → show corrected picture, grouped by priority tier
Run all three in parallel:
# Calendar — today's events
$GOOGLE_TOOLS_PATH/.venv/bin/python3 $GOOGLE_TOOLS_PATH/read_calendar.py 1
# Inbox — last 3 days, all messages
$GOOGLE_TOOLS_PATH/.venv/bin/python3 $GOOGLE_TOOLS_PATH/read_emails.py 30 "after:$(date -v-3d '+%Y/%m/%d')"
# Sent — last 3 days
$GOOGLE_TOOLS_PATH/.venv/bin/python3 $GOOGLE_TOOLS_PATH/read_emails.py 20 "in:sent after:$(date -v-3d '+%Y/%m/%d')"
import pandas as pd
from datetime import date
today = str(date.today())
CRM = '$DATA_PATH/sales/crm'
PM = '$DATA_PATH/projects/pm'
leads = pd.read_csv(f'{CRM}/relationships/leads.csv')
people = pd.read_csv(f'{CRM}/contacts/people.csv')
tasks = pd.read_csv(f'{PM}/pm_tasks_master.csv')
# Active leads only (not won/lost/dead)
active_leads = leads[leads['stage'].isin(['new', 'qualified', 'proposal', 'negotiation'])]
# Leads with actions due today or overdue
due = active_leads[active_leads['next_action_date'] <= today]
For each active lead that has next_action containing "waiting"/"check"/"follow-up":
people.csvImplementation:
# Build email lookup: person_id -> email
contact_emails = dict(zip(people['person_id'], people['email']))
# For each due lead, check if we have a reply
for _, lead in due.iterrows():
contact_id = lead['primary_contact_id']
email = contact_emails.get(contact_id, '')
if not email or pd.isna(email):
continue
# Check if this email appears in recent inbox
# (Claude: search the inbox output from Step 1 for this email address)
# If found: flag as STALE — reply exists, next_action is outdated
# If not found: lead state is current
Claude does this manually — scan Step 1 inbox output for email addresses matching lead contacts.
IMPORTANT: Use priority tiers, not raw priority_score.
=== TODAY: {date} ===
CALENDAR:
{list today's events with times in WITA}
---
STALE ALERTS (leads where reply already exists but CRM not updated):
- [lead-id] {contact name} replied on {date} — CRM says "{stale next_action}"
ACTION NEEDED: read email, update lead, respond
---
MONEY NOW (invoices, payments, delivery deadlines):
- {items}
MONEY SOON (deals in negotiation/proposal with active momentum):
- {items}
LEADS — ACTION TODAY:
- {leads with next_action_date == today}
LEADS — OVERDUE (skip anything older than 14 days unless high priority):
- {leads with next_action_date < today, max 14 days old}
PM TASKS (in_progress or hot):
- {items, skip auto-generated email reply tasks}
pm_tasks_master.csv entries with task_name starting with "Reply:" are auto-generated by email agent. Do NOT show them as today's tasks.next_action_date is >14 days ago and no recent email activity, skip. Mention count: "N stale leads hidden (run query-leads to review)."| CRM next_action contains | Check inbox for | If found → |
|---|---|---|
| "waiting for reply" / "check reply" | emails FROM contact | Reply exists — read and respond |
| "follow-up" / "ping" / "nudge" | emails FROM contact | They replied before we pinged — update action |
| "send proposal" / "send NDA" | emails in SENT to contact | Already sent — update to "waiting for response" |
| "schedule call" / "book meeting" | calendar events with contact name | Already booked — update to call prep |
When showing tasks and user says "done" or it's clear a task was completed:
pm-done skill)=== TODAY: 2026-03-03 ===
CALENDAR:
16:00 Client H x WelabelData (AI testing)
18:00 Alex/Ivan (discovery call)
21:30 Discovery Call: Frank Castle (Medical AI)
---
STALE ALERTS:
- [lead-clienti-001] Edward Norton replied 2x (01:22, 02:47) —
CRM says "Чекаємо відповідь, дьорнути якщо тиша до 05.03"
ACTION: Edward asking for formal proposal on letterhead. Respond today.
---
MONEY NOW:
- Invoice #99 Enterprise Corp/Client C ($X,XXX) — 19 days overdue, Alice checking fee structure
- Mercury account closure — withdraw funds by April 16
MONEY SOON:
- Client I — Edward wants formal proposal (letterhead, payment terms, dispute resolution)
- Client G NDA — print, sign, send scan to Grace today
LEADS — ACTION TODAY:
- [lead-example-001] Discovery call 18:00 WITA
- [lead-clientg-001] Sign and send NDA
(3 stale leads hidden — run query-leads to review)
email-read — read inbox/sent for live statepm-done — mark task done + create follow-upquery-leads — detailed lead queries, bulk review stale leadsweekly-review — weekly progress reporttimezone — time conversion for calendar eventstesting
通用自媒体文章自动发布工具。支持百家号、搜狐号、知乎、微信公众号、小红书、抖音号六个平台的自动化发布流程。使用Playwright自动化实现平台导航和发布,支持通过storageState管理Cookie实现账号切换。
development
# SKILL.md - Model Configuration Status (mcstatus) ## 触发条件 - `/mcstatus` 命令 - 用户询问模型配备、模型配置、model status、模型列表等 ## 功能 实时生成 Agent + Cron 的模型配置报告,展示当前所有 agent 的主模型/fallback链和所有 cron 任务的模型分配。 ## 执行步骤 ### Step 1: 收集 Agent 模型配置 读取各 agent 的 models.json 获取主模型和 fallback 链: ```bash for agent in main ops code quant data research content market finance pm law product sales batch; do config=$(cat ~/.openclaw/agents/$agent/agent/models.json 2>/dev/null) if [ -n "$config" ]; then echo "=== $agent
tools
MCP 服务器智能管理助手。自动检测 MCP 可用性、智能开关、功能问答,提供人性化的 MCP 管理体验。
tools
从GitHub搜索并自动安装配置MCP(Model Context Protocol)服务器工具到Claude配置文件。当用户需要安装MCP工具时触发此技能。工作流程:搜索GitHub上的MCP项目 -> 提取npx配置 -> 添加到~/.claude.json -> 处理API密钥(如有)。