Newsletter: AI Intelligence Brief
This skill's job is to produce one edition of the weekly AI intelligence
newsletter. All of the editorial substance — role, audience, research
window, sourcing rules, the 15-part structure, editorial rules, and
writing style — lives in assets/PROMPT.md in this same directory. This
file only says how to use it; assets/PROMPT.md is the single source of
truth for what the newsletter contains and how it reads, so don't
reconstruct the brief from memory or summarize it — read the file itself.
Steps
- Read
assets/PROMPT.mdin full before writing anything. Treat it as the complete editorial brief for this edition, not a template to paraphrase. - Parse the invocation for flags:
- Output format —
-o/--outputfollowed bymd,yaml, oryml; or the shorthand--md/--yaml/--yml. No flag meansmd(the original behavior). An unrecognized value is an error — ask the user to pickmdoryamlrather than guessing. - Report path (
yaml/ymloutput only) —-r/--reportfollowed by a path: either a folder (getsreport.html+report.yamlinside it) or an explicit.html/.htmfile path (gets a.yamlsidecar with the same basename next to it). Given withmdoutput, it's a no-op — say so rather than silently ignoring it.
- Output format —
- Do the research it calls for: AI developments from the last 7 days,
pulling in 30-90 days of prior context only where a development needs
it to make sense. Use current web research and prefer the primary
sources
assets/PROMPT.mdlists (company announcements, papers, model cards, technical reports, repos, earnings, regulatory filings) over secondary reporting; cross-check important claims across multiple sources. - Write the newsletter following
assets/PROMPT.md's structure and rules exactly, in order: the Top 20 Developments, then Parts 2-15 (Model Intelligence through The Big Picture), applying the Editorial Rules and Writing Style sections throughout. Skip a section's content honestly ("No material development this week.") rather than manufacturing a story to fill it. - Keep confirmed fact, company claim, reported information, and analyst
inference clearly distinguished throughout, as
assets/PROMPT.mdrequires — don't blur them for narrative flow. - Attach a real source to every sourced claim, and never invent one.
Whenever a development traces to an actual URL you found during
research, carry that URL forward as a citation (see the YAML
sourcesfield below, or an inline link in markdown mode). When no verifiable URL exists for a claim, say so in the text instead of fabricating a link — a missing citation is honest; a fake one is not. - Produce the output in the requested format:
md(default): return the finished edition as markdown chat output, structured perassets/PROMPT.md, unless the user asks for it to be saved to a file. Cite sources as ordinary markdown links.yaml/yml: instead of prose, produce a single YAML document conforming exactly to the schemabuilder/report_data.pyvalidates (see its module docstring andvalidate()for the authoritative field list) — ametablock plus an orderedsectionslist (onekind: homelanding section, then onekind: standardsection per Part, each withitemsthat carrytitle, anicon/badgefrom the template's set, and whichever ofbody/facts/table/stats/kvfits that item's content, plussources: [{label, url}]for every claim with a real link). Useassets/templates/sample-report.yamlas a fully worked example — copy its shape rather than inventing a new one. Do not hand-number citations or write a references list yourself: list each item'ssources, and the render step below dedupes them by URL and builds the numbering and per-tab References accordions automatically, which is what guarantees every citation link actually resolves.No
-r/--reportgiven: write the YAML to a file (or return it as a fenced code block if the user hasn't said where), and mention it can be rendered into the interactive report with:python skills/newsletters/newsletter-ai/builder/build_report.py <file>.yaml <output>.html-r/--report PATHgiven: run the render yourself:python skills/newsletters/newsletter-ai/builder/build_report.py <file>.yaml -r PATHThis writes the rendered HTML and a copy of the YAML side by side (see Report path above for how PATH resolves), and by default fuses the source YAML into the HTML too (a hidden, base64-encoded
<script>blob) so the single.htmlfile remains fully reproducible even without its.yamlsidecar — the page's "Download data" button in the top bar lets a viewer pull that YAML back out. Pass--no-fuseonly if the user explicitly doesn't want the data embedded. Report the paths written back to the user.
Development
See meta/MAINTAINERS.md for this skill's layout, the YAML schema, how to
update assets/PROMPT.md or assets/templates/report.html, how to run
the test suite, and versioning conventions. It is not read as part of
carrying out a /newsletter-ai request — don't act on it while producing
an edition.