docs: add automated what's new highlights - #25729
Conversation
✅ Deploy Preview for docsdocker ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟢 APPROVE
The What's new pipeline looks solid. The homepage layout correctly renders the section once via the layout partial (not via .Content), validation logic is sound, and the workflow's error handling is appropriate given GitHub Actions' bash -eo pipefail default. One minor suggestion on the duplicate-detection logic.
35f5200 to
7e3119a
Compare
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟢 APPROVE
The PR introduces a data-driven "What's New" feed on the Docker docs homepage, replacing the static "Featured topics" section. The implementation is well-structured: the Hugo partial correctly reads from hugo.Data, the workflow has sensible guards (agent scope check, prettier formatting, custom validator), and the validator script covers the key correctness invariants (required fields, ISO date format, sort order, title and URL uniqueness).
No high or medium severity issues found. Specifically:
- No AI-isms or hedge words in any user-facing content
- No missing front matter (no
.mdcontent pages added) - No missing redirects (the removed "Featured topics" section was inline HTML with no routable URL)
- No vendored/generated files modified
- Hugo template syntax and shortcode usage are valid
data/whats-new.jsonis hand-authored root-level JSON and correctly reviewed as such
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟢 APPROVE
The PR replaces the static "Featured topics" homepage section with a data-driven What's new feed. All eight changed files were reviewed:
.github/workflows/update-whats-new.yml— CI workflow (infrastructure, not documentation prose)hack/validate-whats-new.mjs— validation script with deterministic checks (not documentation prose)layouts/_partials/whats-new.html— Hugo partial with correct semantic HTML (<time>,<ol>,<li>,aria-hiddenon decorative span)layouts/home.html— removes static section, replaces with partial callcontent/_index.md— homepage content; no style or accuracy issuesdata/whats-new.json— seed data with seven entries; descriptions are factual, direct, and free of hedge words or marketing language.github/agents/whats-new.yaml— agent instructions; clear inclusion criteria and deterministic constraintslayouts/_shortcodes/whats-new.markdown.md— shortcode template; no prose issues
No documentation issues found in the changed lines. Good work!
aevesdocker
left a comment
There was a problem hiding this comment.
LGTM. Curious where the request to have this came from?
Will we get analytics on this to see if users follow these 'What's new' links?
|
@aevesdocker I've been thinking about it for a while but it was most recently brought up by @ajeetraina in our devrel sync last week - he was asking if there's a good way to find out about new product changes. |
|
@dvdksn Looks great. Should we expand the coverage to the last 30 days surfacing the top 5 features and include an expand option to disclose all new features shipped in the last month? |
The homepage featured topics were static and did not surface newly released Docker capabilities. Add data-driven highlights, a strict curation agent, validation, and a weekly pull request workflow.
The initial automation reviewed a fixed Monday-to-Sunday period only once per week. Run it daily over the previous seven complete UTC days, preserve pending proposals, and avoid pull requests for metadata-only window changes.
The curator copied an arbitrary 8192-token cap and an outdated schema modeline from the nightly scanner. Use Claude Sonnet 5, set a task-sized 4096-token response cap, and point YAML tooling at agent-schema.json.
The initial two-item seed used an older publication window and did not demonstrate release-note or multi-PR highlights. Curate the latest seven-day window into four qualifying launches and permit substantive features found in vendored syncs.
Curate a rolling 30-day launch archive while keeping five highlights visible on the homepage. Tighten the agent prompt, validate featured entries, and refresh the seed data.
7e3119a to
b750b94
Compare
Move the reusable editorial workflow out of the scheduled agent configuration. Keep the reviewed monthly result and flexible selection criteria as a regression example outside runtime context.
|
Implemented this: the curator now reviews a rolling 30-day window, shows the five featured launches by default, and expands to the full curated monthly timeline. I also packaged the editorial workflow as a reusable repository skill and preserved this reviewed result as a regression example.\n\nGenerated by Codex |
Render all timeline entries from one date-sorted sequence and animate non-featured rows with Alpine collapse. Shorten the expansion control to Show more and Show less.
Summary
Replace the static Featured topics section with a data-driven Whatʼs new timeline. Show the five most important launches by default and let readers expand the full curated 30-day archive.
Run a daily Claude Sonnet 5 curator over a rolling 30-day window, with manual dispatch support, deterministic validation, and bot-managed pull requests. Package the editorial workflow as the reusable
curate-whats-newrepository skill so Docker Agent and other Agent Skills-compatible clients can invoke the same process.Preserve the human-reviewed July 13 through August 11, 2026 result and flexible selection criteria as a regression example outside the skillʼs runtime context.
@netlify /
Homepage preview
Generated by Codex