langchain-ai/lca-deepagents-weekly-newsletter
Produce the weekly 'This Week in Music' customer newsletter by researching the distributor's top genres and assembling a styled HTML page. Use when asked to create, write, or send the weekly newsletter or a music-news roundup.
npx skills add https://github.com/langchain-ai/lca-deepagents --skill weekly-newsletter
A background job. Launch it, then get out of the way — newsletter-agent
researches every genre and assembles the finished HTML itself.
top 4 genres by revenue across the catalogue and feature those.
start_async_task(subagent_type="newsletter-agent", description=...)once, with the genre list in description (e.g. "Research and
assemble this week's newsletter for these genres: Rock, Latin, Jazz,
Classical"). It returns a task ID immediately; it does not block.
stop. Do not poll — check on it the next time she asks.
entirely newsletter-agent's job.
list_async_tasks() and read the task_id: field forthe newsletter-agent entry. Don't rely on the task_id from earlier in the
conversation — it may have scrolled out of context or been summarized away;
list_async_tasks reads it from durable state, not memory.
check_async_task(task_id).status isn't terminal yet (success or error), report progress toJane and stop — check again the next time she asks.
status is error, tell Jane the newsletter couldn't be put togetherthis week and stop — there's no HTML to save.
status is success, result is the finished HTML, verbatim — nomarkdown conversion needed here, newsletter-agent already did that.
Continue to step 4 immediately, in the same turn — don't ask Jane for
permission first. She already asked for the newsletter back in step 1; a
completed background job isn't a new decision that needs re-confirming.
it ready?" again after you already saved it) — don't save a duplicate
file. Check deterministically, not from conversation memory (which can be
summarized away): call `glob("/outputs/newsletter-*-<task_id, first 8
chars>.html")`. If that already matches a file, tell Jane it's already
saved at that path and stop.
new Date().toISOString().slice(0, 19).replace(/:/g, '-') — this is
date-and-time, not just the date, so a genuinely new newsletter request
later the same day produces a new file instead of overwriting the last
one.
write_file the HTML from step 3 exactly as returned — no edits, noadded commentary — to
/outputs/newsletter-<timestamp>-<task_id, first 8 chars>.html.
Tell Jane where the newsletter was saved. If the HTML you just saved
mentions a genre that didn't make it in (newsletter-agent notes this itself
when a genre's research fails), pass that along in your own words.
Take langchain-ai/lca-deepagents-weekly-newsletter from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.