/install ai-newsletter
AI Newsletter Daily
Generate a concise daily AI newsletter from fresh web sources.
Use this skill only for current AI/ML news, releases, research, funding, product launches, model updates, regulation, benchmarks, or practitioner-relevant developments.
Do not use for evergreen explainers, non-AI topics, or long-form research that is not intended to become a curated newsletter.
Inputs
Defaults:
target_news_count= 20search_query="latest AI news today"search_time_window_days= 2max_search_results= 60min_articles_required= 10include_domains=[]exclude_domains=["youtube.com", "reddit.com", "facebook.com", "x.com", "twitter.com"]summary_model="host-default"max_scrape_retries= 2
Bounds:
target_news_count: 1..50search_time_window_days: 1..14max_search_results: 20..120min_articles_required: 1..50max_scrape_retries: 0..5
If min_articles_required > target_news_count, set it to target_news_count.
Batch policy
- Search up to
max_search_resultscandidates. - Keep the top
target_news_count * 2candidates for fetch attempts. - Return only the top
target_news_countverified items. - Do not summarize every search result.
Required outputs
Return:
newsletter_itemsas a list of objects.markdown_newsletteras a string.json_newsletteras an object.
Each item must include:
titleurldomainpublished_atsummaryrelevance_scoresource_query
Use "unknown" for missing published_at.
Workflow
-
Resolve inputs.
- Apply defaults and bounds.
- Initialize
warnings = [],seen_canonical_urls = set(),processed_urls = set().
-
Search.
- Run
web_searchwithsearch_query. - If no usable results, retry once with:
"{search_query} generative AI LLM model open source enterprise"
- If still no usable results, fail clearly.
- Run
-
Normalize and filter.
- Keep only results with non-empty title and URL.
- Canonicalize URLs: lowercase host, remove tracking parameters, normalize safe trailing slashes.
- Drop duplicates by canonical URL.
- Apply
include_domainsandexclude_domains. - Prefer results likely within
search_time_window_days. - Keep unknown dates, but score them lower.
-
Rank.
- Score each candidate from 0 to 100:
- AI-topic relevance: 0..50
- Freshness: 0..30
- Title/snippet clarity: 0..20
- Sort by:
relevance_scoredescpublished_atdesc, unknown lasturlasc
- Keep the top
target_news_count * 2candidates.
- Score each candidate from 0 to 100:
-
Verify and summarize.
- Process candidates in ranked order until
target_news_countverified items are collected. - Skip candidates whose canonical URL is already in
processed_urls. - Attempt
web_fetchup tomax_scrape_retries + 1times. - If fetch fails, add a warning with the URL and reason, then continue.
- Cross-check search result vs fetched page using:
- title similarity,
- domain consistency,
- topic alignment,
- published date when available.
- If the page appears materially inconsistent, skip it and warn.
- Summarize in one plain-text paragraph, max about 80 words.
- Focus on why it matters to AI practitioners.
- If summary generation fails, warn and continue.
- Append the enriched item.
- Process candidates in ranked order until
-
Minimum quality gate.
- If collected items are fewer than
min_articles_required, run one fallback search with:"AI news today machine learning model release funding research"
- Process only new candidates not already seen or processed.
- Repeat filtering, ranking, verification, and summarization.
- If collected items are fewer than
-
Final integrity check.
- Ensure every final item has non-empty
title,url,domain,summary,source_query, and numericrelevance_score. - Ensure each URL appears once.
- Ensure
markdown_newsletterandjson_newslettermatch in item count. - Remove and warn on any invalid item.
- Ensure every final item has non-empty
-
Finalize.
- Sort by
relevance_scoredesc, thenpublished_atdesc. - Truncate to
target_news_count. - Render
markdown_newsletter. - Assemble
json_newsletter. - Return all outputs.
- Sort by
Verification rules
Accept an item only if it passes these checks:
-
URL integrity:
- canonical URL is valid,
- duplicates removed,
- malformed URLs rejected.
-
Source consistency:
- search title and fetched title broadly match,
- snippet and page content describe the same story,
- off-topic pages rejected.
-
Metadata sanity:
- valid published date preferred,
- unknown date allowed only if the rest is strong,
- malformed or impossible dates rejected.
-
Content integrity:
- fetched content must be substantively about the same AI news item,
- truncated or malformed pages rejected.
-
Warning log:
- record every failed URL and reason,
- record whether fallback search was used.
Markdown format
markdown_newsletter must use:
- H1 title with date.
- One H2 section per article.
- One short summary paragraph per article.
- One source link per article.
Example:
AI Newsletter Daily — 2026-04-28
1. Article title
Summary paragraph.
Source: link
Warnings
Only include this section when needed.
Failure policy
Hard fail only when:
- Both initial and fallback searches return no usable URLs.
- Required tools are unavailable.
Soft fail and continue when:
- A single fetch fails.
- A single summary fails.
published_atis missing.- A candidate fails cross-check verification.
Partial success is acceptable when the result count is between min_articles_required and target_news_count.
Always include actionable warnings with URL, short reason, and whether fallback search was used.
Safety rules
- Use only sanctioned tools.
- Do not request API keys from the user.
- Do not expose secrets.
- Do not include copyrighted full article text.
- Keep summaries neutral, concise, and factual.
- Preserve deterministic behavior wherever tool outputs allow.
Return shape
json_newsletter must contain:
datequerycountarticleswarnings
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ai-newsletter - After installation, invoke the skill by name or use
/ai-newsletter - Provide required inputs per the skill's parameter spec and get structured output
What is ai-newsletter?
Generate a daily AI news newsletter from fresh web sources. Use when the user asks for a current AI digest, AI news roundup, curated newsletter, or daily AI... It is an AI Agent Skill for Claude Code / OpenClaw, with 110 downloads so far.
How do I install ai-newsletter?
Run "/install ai-newsletter" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is ai-newsletter free?
Yes, ai-newsletter is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does ai-newsletter support?
ai-newsletter is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created ai-newsletter?
It is built and maintained by Jeff Yang (@j3ffyang); the current version is v1.3.0.