release

star 815

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/.

rweekly By rweekly schedule Updated 6/15/2026

name: release description: 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/. disable-model-invocation: true allowed-tools: Read, Write, Bash

R Weekly Release

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
Install via CLI
npx skills add https://github.com/rweekly/rweekly.org --skill release
Repository Details
star Stars 815
call_split Forks 409
navigation Branch main
article Path SKILL.md
More from Creator