R Weekly Release

SkillFiles & storage

Lets your agent publish the current R Weekly draft as a new weekly blog post after checking it for problems.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the R Weekly Release skill

About this capability

Publish the current R Weekly draft as a new weekly post. Use when an editor invokes /release or asks to "release", "publish", or "create the weekly post" from draft.md. Validates the draft before creating the file in _posts/.

What this skill tells your AI

The instructions your AI receives, as published by rweekly/rweekly.org in .claude/skills/release/SKILL.md and read by ahel’s review.

Publish draft.md as a new weekly issue in _posts/. Run pre-flight checks first — stop if any fail.

Pre-flight Checks

Read draft.md and verify all three conditions. Report every failure found before stopping.

Check 1: Non-empty Highlight section

The ### Highlight section must contain at least one content line (a line starting with +, *, or -). If it is empty, report: "FAIL: ### Highlight section is empty. Editors must add content before releasing."

Check 2: No empty sections

Every ### SECTION block must have at least one non-blank line of content before the next ### or end of file. A line is "content" if it is not blank and does not start with ###.

List every empty section found. Report: "FAIL: The following sections are empty: [list]. Remove them or add content before releasing."

Note: sections with only boilerplate HTML (like the CRANberries link in New Packages or the podcast link in Videos and Podcasts) count as non-empty — they have content lines.

Check 3: At least 3 images

Count lines containing either a Markdown image ![...](...) or an HTML <img tag in the draft body (not the front matter). If fewer than 3, report: "FAIL: Only N image(s) found. At least 3 are required."

If any check fails, stop and show all failures. Do not create the post file.

Check 4: Duplicate links (advisory — editor decides)

Run the duplicate checker:

Rscript -e 'source("scripts/find_duplicates.R"); get_dups()'

This compares draft.md links against the last ~20 published posts. Do not hard-fail on duplicates — present the results to the editor for a judgment call. Some duplicates are intentional and fine to keep:

  • Recurring events, conferences, and meetup listings
  • Standing resources (workshops, community links)
  • Anything the editor explicitly wants to repeat

Report any duplicates found as a warning:

⚠ Possible duplicates found (review before releasing):
  - [Title](URL) — also in 2026-W23
  - [Title](URL) — also in 2026-W21
These may be intentional. Remove or keep as appropriate.

If no duplicates are found, say so and continue. Either way, wait for the editor to confirm before proceeding to release.


Creating the Release

If all checks pass and the editor has confirmed, proceed:

Step 1: Compute date and week

Run in Bash:

echo "DATE=$(date +%Y-%m-%d)" && echo "YEARWEEK=$(date +%G-W%V)"

This gives you e.g. DATE=2026-03-09 and YEARWEEK=2026-W11.

Step 2: Summarize the Highlight section

Read the items listed under ### Highlight. Write a short, natural-language summary of the highlights — typically 2–3 comma-separated phrases drawn from the article titles. Use title case. Capture the actual topic, not just the tool name.

Look at recent post titles for the style:

  • R Version Update, Refactoring, Your Tests Lie to You
  • Building a computer, Toolbars, Memory model
  • 15 Years of rOpenSci, Durations of wars, and R-squared
  • S at 50, targets vs dbt

Keep each phrase short (1–4 words). Avoid padding words like "and", "the", "a" unless they're part of the title. Do not use all-lowercase bare words.

Step 3: Build the filename

_posts/DATE-YEARWEEK.md

Example: _posts/2026-03-09-2026-W11.md

Step 4: Compose the post

The post consists of:

  1. A new front matter block (do NOT copy the draft's front matter):
---
title: R Weekly YEARWEEK WORD1 WORD2 WORD3
description: Weekly News in the R Community
image: https://rweekly.org/public/facebook.png
---
  1. The body of draft.md — everything after the closing --- of its front matter, exactly as-is.

Step 5: Write the file

Use the Write tool to create _posts/DATE-YEARWEEK.md with the composed content.

Step 6: Reset the draft

Read for-editor-only-draft.txt and overwrite draft.md with its contents, but update the title with the next week number. For example, if you just released 2026-W15, change the title from R Weekly 2026-W00 to R Weekly 2026-W16 before writing.

Step 7: Confirm

Tell the editor:

  • The filename created
  • The title used
  • A one-line summary of what the Highlight section contains

Signals

GitHub stars
820
Forks
431
Last commit
Sep 2026
Hacker News mentions
20
Advanced
Catalog kind
skill
Gateway key
release-rweekly
Source
github.com/rweekly/rweekly.org