# Issue Press > A newsletter issue from the links a curator saved: the pile checked and laid out free in the browser; a metered run > writes the issue from the curator's own notes (links inserted by item number, so none is invented) or edits a draft > against the newsletter checklist. Built on the SkillSafe skill @bytedance/newsletter-generation (bytedance/deer-flow, > MIT). https://issue-press.skillsafe.ai/ ## The input - The brief: newsletter name, tagline, issue date, format (daily digest, weekly roundup, deep-dive, industry briefing), audience, tone, length, a draft subject line and preview text, footer facts. - The pile: one item per link - a bare URL or a Markdown link, its title, a date if known, and the curator's notes, with a blank line between items. A browser bookmarks export (HTML) works too. - For the edit lane, the draft issue. ## What is free - Every link canonicalised: utm_, fbclid, gclid, mc_cid and other tracking parameters stripped; www, m and amp hosts, trailing slashes and fragments removed. - Duplicate stories caught by link and by title; paywalled publications, social reposts, insecure links, items older than the format's window and links with no notes flagged; a week dominated by one source detected; the item count checked against the format. - The items laid into the format's sections (the lead by the richest, current, open, primary items; tools, data, company and policy items by kind); the subject line (30-60 characters, no shouting, no spam words) and preview (40-130 characters) checked; the footer checked for an unsubscribe and a postal address. - For a draft: links that are not in the pile, numbers no note gives, a story linked twice, items not used. - Exports: the clean links, the pile as CSV, the findings as CSV, the plan as Markdown. ## The metered lanes Two tasks on gpt-terra, metered per run, routed by `task`. Input string fields: `task` (write or edit), `brief`, `pile` (the numbered items with clean links and notes), `draft` (for edit) and `page` (the page's reading). - `write` replies with three `subject_lines`, a `preview`, a `title`, an `intro`, `sections` (each item referred to by its pile number `n`, with a headline, body and why it matters), a `closing` and `cut` (each unused item with a reason). The page renders the issue as Markdown and as email-ready HTML (one 600-pixel table, inline styles), inserting each link from the pile. It requires every item from the pile and used once or cut, no URL typed by the model, every number from that item's notes, the format's section counts, subject lines and preview of the right length. - `edit` replies with a `verdict` (ready, revise, rework), `summary`, the eleven-entry `checklist` (sourced, links, dates, current, duplicates, formatting, balance, length, opening, closing, proofread), `fixes` quoted from the draft, better `subject_lines`, `findings`, `prescan` and `caveats`. The page requires its own findings to fail the matching entries and every unsourced link and number to have a fix. ## Links - API tutorial: https://issue-press.skillsafe.ai/api.html - Source skill: https://skillsafe.ai/skill/@bytedance/newsletter-generation