Skip to content

Writing and design skills: post figures, covers, and grading forecasts - #94

Open
MaxGhenis wants to merge 5 commits into
mainfrom
max/report-guidance-charts-covers-grading
Open

MaxGhenis wants to merge 5 commits into
mainfrom
max/report-guidance-charts-covers-grading

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Adds guidance learned from the 2025 SPM graded prediction post: how posts draw charts and covers, and how a post that grades a forecast should handle the analysis. Three rounds of independent review caught errors in that post's diagnosis, and each rule below comes from one of those catches or from a correction on the post's presentation.

policyengine-writing

New section: Figures, covers and replication in posts

  • Charts are ```chart blocks rendered by the website with Recharts and the ui-kit defaults (Design-system bar charts for blog posts; use one in the graded prediction post policyengine-app-v2#1231, #1232). No matplotlib PNGs or Plotly JSON in new posts.
  • Newsletter and social images of a chart are screenshots of the live chart, not re-plots.
  • Research posts get a photographic still-life cover: teal only in the objects, nothing legible, 1800×840 WebP. The section includes the prompt used for the 2025 SPM posts. Covers are never charts.
  • Replication detail goes in footnotes; posts.json dates carry a time of day.

New section: Grading forecasts and explaining misses

  • Grade the registered quantity against published margins. When the benchmark change is not significant, reruns show which assumptions matter.
  • Every rerun is a full model run.
  • Totals come first. Splits depend on the order of the steps, so split each rerun on its own run.
  • CPS population controls change between years, so compare per recipient and hold the age mix fixed.
  • A pattern needs its sampling error before it is stated as a finding.
  • Name rate definitions exactly, and label data series as their source does.
  • Get an independent review before publishing.

Writing checklist: four new items covering the above.

policyengine-design

The Charts section now says posts use ```chart blocks, not Plotly. It explains that ui-kit components render unstyled on the website because the site's Tailwind build uses the tw: prefix. The Plotly house style is scoped to notebooks and standalone outputs.

Release

The plugin version goes from 4.0.2 to 4.0.3 in targets/claude/marketplace.template.json and every bundles/*.json.

Checks

uv run pytest --ignore=tests/test_skill_examples.py passes all 178 tests, including the anti-rot lint. The companion app-v2 doc update is PolicyEngine/policyengine-app-v2#1236.

🤖 Generated with Claude Code

MaxGhenis and others added 5 commits September 29, 2026 20:50
policyengine-writing gains two sections and four checklist items:
- Figures, covers and replication in posts: ```chart blocks for charts (no
  matplotlib PNGs or Plotly in new posts); newsletter and social chart images
  screenshot from the live post; photographic still-life covers with nothing
  legible, never a chart (with the prompt used for the 2025 SPM posts);
  replication detail in footnotes; posts.json dates with a time of day.
- Grading forecasts and explaining misses: grade the registered quantity with
  published margins; every rerun a full model run; totals first and
  order-dependent splits labelled; per-recipient, age-adjusted survey
  comparisons across CPS population-control changes; sampling error before
  claiming a pattern; exact rate definitions; independent review.

policyengine-design: posts on policyengine.org use ```chart blocks, the website's
tw: Tailwind prefix leaves ui-kit utility classes unstyled there, and the
Plotly house style is for notebooks and standalone outputs.

Plugin version 4.0.2 -> 4.0.3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in body, grading wording, covers, dates)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…prompt, decomposition orders, cover wording)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

The "Post dates" note added here (skills/policyengine-writing/SKILL.md, the bullet that says to always add a time of day) is obsolete now that PolicyEngine/policyengine-app-v2#1237 has merged: bare dates show as their own day in every time zone. The corrected note is in #95, stacked on this branch and approved by an Opus 5.5 review. Merge #95 into this branch before merging #94, or merge #95 after #94, when GitHub retargets it to main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant