From syndicate-pipeline
Fetch Gmail newsletters from the last N days into syndicate's snapshot.db. Writes to DB.
How this skill is triggered — by the user, by Claude, or both
Slash command
/syndicate-pipeline:syndicate-ingest-gmail [--days 2] [--folder INBOX]When to use
When the user explicitly asks to refresh / fetch / ingest Gmail newsletters into syndicate. Examples: "pull Gmail newsletters", "refresh syndicate gmail", "ingest the last 3 days of gmail".
[--days 2] [--folder INBOX]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are running Gmail ingestion. This **writes to the DB** — only run when the user explicitly asked.
You are running Gmail ingestion. This writes to the DB — only run when the user explicitly asked.
Check GMAIL_USER and GMAIL_APP_PASSWORD are set by running status first:
cd "${SYNDICATE_REPO:-$(pwd)}" && uv run python -m pipeline.cli status
If result.env_present.GMAIL_USER or result.env_present.GMAIL_APP_PASSWORD
is false, tell the user which one is missing and stop. Do not attempt the
ingest.
Default lookback is 1 day. Parse $ARGUMENTS for --days N if supplied
(otherwise use 1) and --folder NAME (otherwise INBOX):
cd "${SYNDICATE_REPO:-$(pwd)}" && uv run python -m pipeline.cli ingest-gmail --days ${days:-1} --folder ${folder:-INBOX}
The output envelope is:
{"ok": true, "result": {"fetched": N, "saved": N, "skipped": N, "failed": N, "errors": []}, "log_path": "logs/<date>.txt"}
Render one line:
✓ gmail · fetched=X saved=Y skipped=Z failed=W
If failed > 0 or result.ok is false, also dump the first 3 entries
from result.errors. Suggest /syndicate-heal if the failure pattern
looks like IMAP timeouts or auth failure.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub aadarshvelu/syndicate --plugin syndicate-pipeline