[CONTENT SPRINT] Close the CVE-to-AMI Loop with Pulumi and Neo#18967
[CONTENT SPRINT] Close the CVE-to-AMI Loop with Pulumi and Neo#18967sicarul wants to merge 5 commits into
Conversation
Social Media Reviewcontent/blog/cve-ami-refresh-lifecycle-with-pulumi-and-neo/index.mdX — PASSLinkedIn — PASSBluesky — PASSSuggestions (advisory)These are stylistic notes — they don't block the post. X
Bluesky
Updated for commit |
Docs review —
|
|
Your site preview for commit 4857613 is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-18967-48576134.s3-website.us-west-2.amazonaws.com |
Lighthouse Performance ReportCommit: 336b9c5 | Metric definitions
|
336b9c5 to
a7ec4e2
Compare
a7ec4e2 to
a38a072
Compare
|
@claude please review again. I rewrote this branch history to a single clean commit on current |
|
Claude finished @sicarul's task in 1m 41s —— View job Docs re-review —
|
| Previous concern | Status |
|---|---|
.sisyphus/ agent artifacts |
Removed — PR now contains only the 3 blog files |
new_content.md planning doc (internal customer signals) |
Removed |
theme/stencil/yarn.lock unrelated change |
Reverted |
| Social copy single-paragraph FAIL (X / LinkedIn / Bluesky) | All three blocks now have 2 paragraphs with a blank line, using YAML | literal scalars — should pass the next social-media-review run |
Style: easy to start in LinkedIn copy |
Replaced with quick to start ✓ |
Casing: Pulumi Review Stacks |
Section now reads "Review stacks and canary deployments" and the body uses "Pulumi previews" — phrase is gone ✓ |
| Branch history | Confirmed single clean commit (a38a072) on top of current master |
Optional polish — still applicable
A few of the previous content notes weren't addressed; flagging them again in case you want to take them before publish on 2026-05-26. None are blockers.
-
index.md:31— hedge wordoften(STYLE-GUIDE.md flags hedging language):Traditional approaches involve manual spreadsheets or disconnected scanning tools that lack the context of your infrastructure code. Pulumi changes this by integrating security directly into the deployment lifecycle. By combining [Pulumi Insights](/docs/insights/), [Neo](/product/neo/), and [Pulumi Policies](/docs/insights/policy/), you can create a closed-loop system for AMI refreshes. -
index.md:48andindex.md:54— Insights query operatormodified:<2026-04-13. I checkedcontent/docs/insights/discovery/search.md:125-128again; the documented operators formodified:are exact (modified:2023-03-31), range (modified:[2023-01-01 to 2023-03-31]), and>=. The strict-less-than form (<without=) isn't listed. If you've verified it works in Pulumi Cloud, no change needed — otherwise switch to the documented range form:(type:aws:ec2/launchTemplate:LaunchTemplate OR type:aws:ec2/instance:Instance) modified:[* to 2026-04-13]and similarly for the property-search example on line 54.
-
index.md:43— "Pulumi Cloud search" link. Currently links to/product/pulumi-cloud/, but the feature being demonstrated in the next two code blocks is Resource Search. Linking to/docs/insights/discovery/search/lands readers on the syntax page they need to understand the queries that follow. -
index.md:168-170— generic conclusion. "Security is a continuous process, not a destination" doesn't give the reader a next step. Consider closing with a concrete pointer, e.g. a{{< blog/cta-button >}}to the Pulumi Insights or Neo getting-started page, or a "Try this with your own AMIs by…" line.
Publishing-readiness checklist (unchanged from last pass, all still ✓ except the design item)
-
social:block present and now multi-paragraph for X / LinkedIn / Bluesky -
meta_imageset (meta.png) - `` break present (line 35)
- Author
pablo-seibeltexists indata/team/team/ - Title 45 chars (≤60), meta description 140 chars (50–160)
- All internal links resolve
- Code blocks have language specifiers
- No em dashes
-
needs-design— meta image / feature image still flagged in the PR description as potentially placeholder; resolve before 2026-05-26
Summary
PR scope is clean and the social formatting fix should unblock the social-media-review bot on its next run. The four remaining items above are nice-to-haves rather than blockers — your call on which (if any) to take.
- Verify the PR scope is now blog-only
- Check that previous review feedback was applied
- Re-run publishing-readiness checklist on the post
- Post the updated review
• Branch:blog/cve-ami-refresh-lifecycle-with-pulumi-and-neo
|
@claude please review again. Branch history is now a single clean commit on current origin/master. The PR diff contains only content/blog/cve-ami-refresh-lifecycle-with-pulumi-and-neo/index.md plus feature.png and meta.png. Social-review is passing, and actionable content feedback has been addressed. |
|
Claude finished @sicarul's task in 2m 6s —— View job Docs re-review —
|
| Item | Status |
|---|---|
| PR scope | Diff is exactly 3 files: content/blog/cve-ami-refresh-lifecycle-with-pulumi-and-neo/{index.md,feature.png,meta.png} ✓ |
| Branch history | Single commit a38a072 on top of current master ✓ |
| Social copy formatting | twitter, linkedin, bluesky all now use YAML | literal scalars with a blank line between paragraphs (lines 15–26) ✓ |
| Style: "easy" → "quick" | index.md:20 now reads "quick to start and hard to close" ✓ |
| Casing: "Pulumi Review Stacks" | Section is now "Review stacks and canary deployments" (index.md:156); body uses "Pulumi previews" ✓ |
📝 Remaining items — your call, not blockers
You stated these aren't actionable on your side; flagging them here only so the next reader has the trail.
index.md:31— hedge wordoften— STYLE-GUIDE.md flags hedging language. Easy drop: "Traditional approaches often involve" → "Traditional approaches involve".index.md:48andindex.md:54—modified:<2026-04-13— the documented Insightsmodified:operators (content/docs/insights/discovery/search.md:125–128) are exact, range, and>=. Strict<isn't shown. If you've confirmed it works against live Pulumi Cloud, fine to ship as-is; otherwise the documented range form ismodified:[* to 2026-04-13].index.md:43— "Pulumi Cloud" link — currently/product/pulumi-cloud/. The two code blocks that follow are Resource Search syntax, so linking directly to/docs/insights/discovery/search/lands readers on the relevant page.index.md:170— generic conclusion — "Security is a continuous process, not a destination" doesn't give a next step. A{{< blog/cta-button >}}to Insights or Neo getting-started, or a concrete "try this with your own AMIs" pointer, would close the loop the post itself argues for.
⚠️ One small new flag
index.md:26 (Bluesky) — the second paragraph reads Learn more in the post. That's a generic pointer the social-media-review bot flagged in its advisory notes on the previous run, and it's likely to be flagged again on subsequent passes. Not blocking, but if you want to neutralize the bot's suggestions in one shot, consider naming the concrete reader takeaway, e.g. "See the policy pack and CI snippets that gate the deploy." (X and LinkedIn already do this — only Bluesky's CTA is currently generic.)
Publishing-readiness checklist
-
social:block:twitter,linkedin,blueskyall present, multi-paragraph -
meta_image: meta.pngset (138 KB) andfeature_image: feature.pngset (27 KB) — both non-empty - `` break present (
index.md:35) - Author
pablo-seibeltexists indata/team/team/pablo-seibelt.toml - Title 45 chars (≤60), meta description 140 chars (50–160)
- Internal links resolve (
/docs/insights/,/product/neo/,/docs/insights/policy/,/product/pulumi-cloud/) - Code blocks have language specifiers (
text,typescript,bash) - No em dashes detected
-
needs-design: PR description still flags the meta/feature images as potential placeholders — confirm with Design before the 2026-05-26 publish date
Summary
PR scope is clean, social formatting fix should green-light the social-media-review bot, and the post itself reads well end-to-end. Ready to ship once needs-design is resolved — the remaining content notes are stylistic preferences, not blockers.
- Verify PR scope (3 files only)
- Confirm single clean commit on
master - Re-check social frontmatter formatting
- Re-check style-guide items
- Re-check technical-accuracy items
- Run publishing-readiness checklist
- Post the updated review
• Branch:blog/cve-ami-refresh-lifecycle-with-pulumi-and-neo
|
@claude please review again. This request is after the latest pushed head commit |
|
Claude finished @sicarul's task in 1m 43s —— View job Docs re-review —
|
| Check | Result |
|---|---|
| PR scope vs. parent | Exactly 3 files added: content/blog/cve-ami-refresh-lifecycle-with-pulumi-and-neo/{index.md,feature.png,meta.png} — 170 lines added, 0 removed ✓ |
| Branch history | Single commit a38a072 on top of master ✓ |
| Author | data/team/team/pablo-seibelt.toml exists; avatar at static/images/team/pablo-seibelt.jpg ✓ |
| Images | feature.png 942×628 (27 KB), meta.png 1200×628 (138 KB) — both non-empty ✓ |
| Social copy formatting | twitter, linkedin, bluesky all use YAML ` |
| Title / meta length | Title 45 chars (≤60), meta description 140 chars (50–160) ✓ |
| Markdown hygiene | Code blocks tagged (text, typescript, bash); `` break at line 35; no em dashes ✓ |
| Internal links | /docs/insights/, /product/neo/, /docs/insights/policy/, /product/pulumi-cloud/ all resolve ✓ |
📝 Optional polish — acknowledged as not taken
You've stated these aren't actionable on your side. Recording once more so the trail is clear for whoever publishes on 2026-05-26.
index.md:31— hedge wordoften.index.md:48&index.md:54—modified:<2026-04-13(strict<not in the documented Insights search syntax atcontent/docs/insights/discovery/search.md:125–128).index.md:43— "Pulumi Cloud" link points to/product/pulumi-cloud/rather than the Resource Search docs the code blocks demonstrate (/docs/insights/discovery/search/).index.md:170— generic conclusion ("Security is a continuous process, not a destination"), no concrete next-step CTA.index.md:26(Bluesky) —Learn more in the post.is a generic pointer the social-media-review bot has flagged advisorily; X and LinkedIn already have specific CTAs.
Publishing-readiness checklist
-
social:block:twitter,linkedin,blueskyall present, multi-paragraph -
meta_image: meta.png(138 KB) andfeature_image: feature.png(27 KB) — both non-empty - `` break present (
index.md:35) - Author
pablo-seibeltexists and has an avatar - Title ≤60 chars, meta description 50–160 chars
- Internal links resolve
- Code blocks have language specifiers
- No em dashes
-
needs-design— PR description still flagsfeature.png/meta.pngas potential placeholders; confirm with Design before 2026-05-26
Summary
PR scope is clean, content reads well, social formatting is correct, and previously-flagged blockers are all resolved. Ready to ship once needs-design is signed off. The remaining items above are stylistic preferences you've already declined — your call to keep them as-is.
- Verify PR scope (3 files only) against
origin/master - Re-read
index.mdand confirm previously resolved items still resolved - Re-check the remaining optional polish items for current status
- Run publishing-readiness checklist
- Post the updated review
• Branch:blog/cve-ami-refresh-lifecycle-with-pulumi-and-neo
a38a072 to
487164c
Compare
|
@claude please review again. This PR is now marked as draft, the needs-design label has been removed, and the latest pushed head is |
|
@claude #new-review |
Pre-merge Review — Last updated 2026-05-19T17:30:00ZReviewing a draft; findings may change as you iterate. Tip Summary: New blog post at Review confidence:
Investigation log
🔍 Verification trail33 claims extracted · 17 verified · 7 unverifiable · 0 contradicted
📊 Editorial balanceSingle-subject post; balance check N/A. 🚨 Outstanding in this PRNo outstanding findings in this PR.
|
|
🤖 Review regenerated on @sicarul's request. |
|
@claude #update-review |
|
🤖 Review updated on @sicarul's request. |
|
@claude #update-review |
|
🤖 Review updated on @sicarul's request. |
Why this content is interesting
What we took into account
Why it is useful to an end user
Design need
needs-designbecause the post needs a final meta image before publication.feature.pngandmeta.pngfiles are placeholders unless Design chooses to reuse or adapt them.Metadata
🤖 Generated with OpenCode