skills/summarize-whatsapp-group-chats/SKILL.md
Use this skill whenever the user wants to summarize, digest, recap, or get a briefing from WhatsApp group chats using the `wacli` CLI. Trigger on any mention of WhatsApp summaries, group chat digests, catching up on WhatsApp, or briefing from chats. Also trigger when user wants to export or save WhatsApp chat history. Always use `wacli` — no exceptions, never use other methods.
npx skillsauth add agentlyhq/skills summarize-whatsapp-group-chatsInstall 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.
Use the wacli CLI to fetch and summarize WhatsApp group chats. No exceptions — always use wacli.
wacli is already installed and authenticated on the user's machinewacli commands fail with auth errors, ask the user to re-authenticate before proceedingBefore fetching messages, list available group chats to find the correct chat name or ID:
wacli groups list
If the user has specified a chat name, fuzzy-match it against the output. Confirm with the user if ambiguous, especially with similar group names.
Default behavior: fetch the past 24 hours. Adjust if the user specifies a different time range.
# Fetch last 24 hours (default) (please update YYYY-MM-DD below for --after and --before in RFC3339 format)
wacli messages list --chat "<chat-id>" --after "<YYYY-MM-DD HH:MM:SS of one day before today's date>" --before "<YYYY-MM-DD HH:MM:SS of today's date>"
# Fetch by specific date range (if user requests) in RFC3339 format
wacli messages list --chat "<chat-id>" --after "YYYY-MM-DD HH:MM:SS" --before "YYYY-MM-DD HH:MM:SS"
# Fetch by message count (if user requests)
wacli messages list --chat "<chat-id>" --limit 200
Capture the raw output. Note the timestamp of the oldest and newest message in the fetched data — this becomes the data freshness marker.
By default, export the raw chat to a .json file before summarizing. Filename format:
[chat-name]-YYYYMMDD.txt
product-team-20250315.txtwacli messages --chat "<chat-id>" --after "<YYYY-MM-DD of one day before today's date>" --before "<YYYY-MM-DD of today's date>" > "[chat-name]-YYYYMMDD.txt"
If the user specifies a different filename or path, use that instead.
If user prefers JSON, follow that by adding global --json flag the above wacli command.
Summarize the fetched messages. Write like a chief of staff briefing an executive: concise, structured, action-oriented. No padding, no filler.
## [Chat Name] — Summary
**Data covers:** [oldest message timestamp] → [newest message timestamp]
**Fetched at:** [current timestamp]
### Key Decisions
- ...
### Action Items
- [Person] — [what they need to do]
### Notable Discussions
- ...
### FYI / Context
- ...
Only include sections that have content. Skip empty sections entirely.
The user may ask for changes. Always comply. Common overrides:
| User Request | What to Do |
|---|---|
| Different time range | Re-fetch with --since / --until adjusted |
| Different language | Summarize in the requested language |
| More detail on a topic | Expand that section, pull specific messages |
| Different filename | Rename the export file |
| Skip export | Don't write the .txt file |
| Longer / shorter summary | Adjust verbosity accordingly |
| Specific people only | Filter messages by sender in summary |
Whatever the user asks — as long as it's achievable via wacli and summarization — do it.
| Error | Response |
|---|---|
| wacli not found | Tell user to install and authenticate wacli first |
| Auth failure | Ask user to re-run wacli auth or equivalent |
| Chat not found | List available chats with wacli chats and ask user to confirm |
| No messages in range | Say so clearly; offer to widen the time range |
| Empty output | Do not summarize. Report that no messages were found. |
Usage:
wacli messages [command]
Available Commands:
context Show message context around a message ID
list List messages
search Search messages (FTS5 if available; otherwise LIKE)
show Show one message
Flags:
-h, --help help for messages
Global Flags:
--json output JSON instead of human-readable text
--store string store directory (default: ~/.wacli)
--timeout duration command timeout (non-sync commands) (default 5m0s)
wacli chats # List all chats
wacli messages list --chat "<chat-id>" --after "<YYYY-MM-DD of one day before today's date>" --before "<YYYY-MM-DD of today's date>" # Fetch last 24 hours (default) (please update YYYY-MM-DD below for --after and --before)
If
waclihas different flags on the user's version, runwacli --helporwacli messages --helpto check and adapt.
development
Process NEW meeting folders with transcript files and generate executive meeting notes in Google Docs. Use when the user wants to transcribe meetings, process meeting folders, create meeting notes from transcripts, or convert raw transcripts into formatted Google Docs. Trigger on phrases like "transcribe my meetings", "process meeting folders", "create meeting notes from transcripts", "convert transcripts to docs", or when user provides a meetings folder to process. Always use this skill when working with a folder structure containing meeting transcripts that need to be formatted into professional meeting notes.
development
Build and query a knowledge bank from Google Docs meeting notes. Use when the user wants to ingest meeting notes from Google Drive, or when answering questions about previously ingested meeting notes. Trigger on phrases like "ingest my meeting notes", "load meeting notes from folder", "what did we discuss about X" (after ingestion), "find information about Y in meeting notes", "build knowledge base from meetings". Always use this skill when working with a corpus of meeting notes that needs to be searchable.
tools
Design and build CLI tools optimized for AI agent consumption. Use this skill when creating a new CLI command, refactoring an existing CLI for agent compatibility, or reviewing whether a CLI follows agent-friendly design principles.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.