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/agi-super-team 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 eventsdevelopment
Technology-agnostic prompt generator that creates customizable AI prompts for scanning codebases and identifying high-quality code exemplars. Supports multiple programming languages (.NET, Java, JavaScript, TypeScript, React, Angular, Python) with configurable analysis depth, categorization methods, and documentation formats to establish coding standards and maintain consistency across development teams.
tools
Expert-level browser automation, debugging, and performance analysis using Chrome DevTools MCP. Use for interacting with web pages, capturing screenshots, analyzing network traffic, and profiling performance.
data-ai
Prompt for creating detailed feature implementation plans, following Epoch monorepo structure.
tools
Interactive prompt refinement workflow: interrogates scope, deliverables, constraints; copies final markdown to clipboard; never writes code. Requires the Joyride extension.