<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"><channel><title>Pulumi Blog: Cam Soper</title><link>https://www.pulumi.com/blog/author/cam-soper/</link><description>Pulumi blog posts: Cam Soper.</description><language>en-us</language><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><item><title>New: Versioned CLI and SDK Docs</title><link>https://www.pulumi.com/blog/previous-cli-and-sdk-version-docs/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/previous-cli-and-sdk-version-docs/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/previous-cli-and-sdk-version-docs/index.png" /&gt;
&lt;p&gt;Pinned to an older Pulumi CLI or SDK version and finding that the docs describe a newer release? The &lt;a href="https://www.pulumi.com/docs/iac/cli/commands/"&gt;Pulumi CLI command reference&lt;/a&gt; and the SDK API docs now include a version selector, so the documentation you&amp;rsquo;re reading matches the version you&amp;rsquo;re actually running.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;p&gt;When you open the &lt;a href="https://www.pulumi.com/docs/iac/cli/commands/"&gt;CLI command reference&lt;/a&gt;, you&amp;rsquo;ll see a version dropdown near the top of the page, below the title. The SDK API docs carry the same dropdown in the upper-right corner. Choose a release, and the page loads the documentation generated for that exact version.&lt;/p&gt;
&lt;p&gt;&lt;img src="cli-version-selector.png" alt="Version selector near the top of the Pulumi CLI command reference"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="sdk-version-selector.png" alt="Version selector in the upper-right corner of the Pulumi Node.js SDK API docs"&gt;&lt;/p&gt;
&lt;h2 id="whats-available"&gt;What&amp;rsquo;s available&lt;/h2&gt;
&lt;p&gt;Alongside the latest release, we keep immutable snapshots of previous versions going back to v3.150.0 (early 2025). The CLI command reference and the Node.js, Python, .NET, and Java SDK API docs are all covered, so the docs you need are only a dropdown away. (The Go SDK is versioned on &lt;a href="https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3"&gt;pkg.go.dev&lt;/a&gt;, so its documentation lives there rather than in the Pulumi docs.)&lt;/p&gt;
&lt;h2 id="get-started"&gt;Get started&lt;/h2&gt;
&lt;p&gt;Head to the &lt;a href="https://www.pulumi.com/docs/iac/cli/commands/"&gt;CLI command reference&lt;/a&gt; or the &lt;a href="https://www.pulumi.com/docs/reference/"&gt;SDK API docs&lt;/a&gt; and try the version dropdown. Selections are sticky, so when you navigate into a version, you&amp;rsquo;ll be able to click around within that same version without having to choose it again.&lt;/p&gt;
&lt;p&gt;Have feedback? Let us know in the &lt;a href="https://slack.pulumi.com"&gt;Pulumi Community Slack&lt;/a&gt; or by opening an issue on &lt;a href="https://github.com/pulumi/docs"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;a
href="https://www.pulumi.com/docs/iac/cli/commands/"
class="btn btn-primary"
&gt;
Browse the CLI command reference
&lt;/a&gt;</description><author>Cam Soper</author><category>pulumi-cli</category><category>features</category><category>announcements</category></item><item><title>New: Previous Provider Version Docs in Pulumi Registry</title><link>https://www.pulumi.com/blog/previous-version-docs-are-now-available-in-the-pulumi-registry/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/previous-version-docs-are-now-available-in-the-pulumi-registry/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/previous-version-docs-are-now-available-in-the-pulumi-registry/index.png" /&gt;
&lt;p&gt;The &lt;a href="https://www.pulumi.com/registry/"&gt;Pulumi Registry&lt;/a&gt; now supports browsing documentation for previous versions of first-party Pulumi providers. If you&amp;rsquo;ve ever needed to look up the API docs for an older provider version, you no longer have to dig through Git history or guess at changes — the docs are right there in the Registry. These docs also help &lt;a href="https://www.pulumi.com/docs/ai"&gt;Pulumi Neo&lt;/a&gt; and other agents more accurately assist you with your Pulumi code and operations.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;p&gt;When you visit a first-party provider&amp;rsquo;s page in the Pulumi Registry, you&amp;rsquo;ll now see a version dropdown selector that lets you switch between the current version and previous versions.&lt;/p&gt;
&lt;p&gt;&lt;img src="registry-version-picker.png" alt="Version selector dropdown in the Pulumi Registry"&gt;&lt;/p&gt;
&lt;p&gt;Select a previous version from the dropdown, and the Registry loads the full API documentation for that version.&lt;/p&gt;
&lt;h2 id="whats-available"&gt;What&amp;rsquo;s available&lt;/h2&gt;
&lt;p&gt;This feature currently includes documentation for the latest release of each previous major version, going back two major versions. For example, if a provider is on v7.x, you&amp;rsquo;ll be able to view docs for the latest v6.x and v5.x releases in addition to the current version.&lt;/p&gt;
&lt;h2 id="get-started"&gt;Get started&lt;/h2&gt;
&lt;p&gt;Head over to the &lt;a href="https://www.pulumi.com/registry/"&gt;Pulumi Registry&lt;/a&gt; and try it out. Pick any first-party provider with multiple major versions and use the version dropdown to browse its history.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;d love to hear your feedback — let us know what you think in the &lt;a href="https://slack.pulumi.com"&gt;Pulumi Community Slack&lt;/a&gt; or by opening an issue on &lt;a href="https://github.com/pulumi/registry"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;a
href="https://www.pulumi.com/registry/"
class="btn btn-primary"
&gt;
Explore the Pulumi Registry
&lt;/a&gt;</description><author>Cam Soper</author><author>Fausto Núñez Alberro</author><category>registry</category><category>features</category></item><item><title>Treating Prompts Like Code: A Content Engineer's AI Workflow</title><link>https://www.pulumi.com/blog/treating-prompts-like-code/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/treating-prompts-like-code/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/treating-prompts-like-code/index.png" /&gt;
&lt;p&gt;Pulumi has a lot of engineers. It has marketers, solution architects, developer advocates. Everyone has something to contribute to docs and blog posts — domain expertise, hard-won lessons, real-world examples. What they don&amp;rsquo;t all have is familiarity with our &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; setup, our style guide, our metadata conventions, or where a new document is supposed to live in the navigation tree. I joined Pulumi in July 2025 as a Senior Technical Content Engineer. A few weeks in, my sole teammate departed. The docs practice was now, functionally, me.&lt;/p&gt;
&lt;p&gt;The problem was clear enough: how do you take one docs engineer&amp;rsquo;s accumulated knowledge and make it available to everyone who needs it, without that engineer becoming a bottleneck?&lt;/p&gt;
&lt;p&gt;I started packaging it. Here&amp;rsquo;s what that looked like in practice.&lt;/p&gt;
&lt;h2 id="the-real-problem-ai-solves"&gt;The real problem AI solves&lt;/h2&gt;
&lt;p&gt;Everyone talks about AI making you faster. That&amp;rsquo;s not wrong, but it&amp;rsquo;s not the most interesting part — at least not for me.&lt;/p&gt;
&lt;p&gt;The most interesting part is what it does to the &lt;em&gt;starting&lt;/em&gt; problem. I have an ADHD brain (not formally diagnosed, but with enough self-recognition to know what&amp;rsquo;s going on). I know what that means for my relationship with most tasks: I can see the problem, I understand it, I want to fix it, and then the sheer weight of starting crushes me flat.&lt;/p&gt;
&lt;p&gt;When I&amp;rsquo;m stuck on a task, the issue is almost never that I don&amp;rsquo;t know what to do. It&amp;rsquo;s that my brain is trying to hold the entire finished product in working memory while simultaneously producing the first step. That&amp;rsquo;s an enormous cognitive tax, and for an ADHD brain it&amp;rsquo;s often insurmountable.&lt;/p&gt;
&lt;p&gt;Talking through a problem conversationally is a completely different cognitive load. I can tell &lt;a href="https://claude.ai"&gt;Claude&lt;/a&gt; &amp;ldquo;here&amp;rsquo;s the issue, here&amp;rsquo;s what I&amp;rsquo;m trying to accomplish, here&amp;rsquo;s what&amp;rsquo;s weird about it,&amp;rdquo; and suddenly I&amp;rsquo;m not staring at a blank page anymore. I&amp;rsquo;m in a conversation. The scaffold exists. I can build on it.&lt;/p&gt;
&lt;p&gt;That dynamic isn&amp;rsquo;t new for me. In a previous role writing training modules at Microsoft, I did some of my best work, not because the work was easy, but because I had a collaborator. A friend to think out loud with. Someone to say &amp;ldquo;okay, so what are we actually trying to say here?&amp;rdquo; That conversational scaffolding was the difference between spinning and shipping.&lt;/p&gt;
&lt;p&gt;In my current role as a team of one, AI turned out to be that collaborator.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t really a productivity story. It&amp;rsquo;s closer to a cognitive accommodation story. And I&amp;rsquo;d bet a lot of people — diagnosed or not — will recognize what I&amp;rsquo;m describing.&lt;/p&gt;
&lt;h2 id="treating-prompts-like-code"&gt;Treating prompts like code&lt;/h2&gt;
&lt;p&gt;If conversational scaffolding could lower my own activation energy, the next question was obvious: could I build that for anyone who needed it? I knew I wanted to use AI to solve this problem, but I didn&amp;rsquo;t want to just write a bunch of one-off prompts. That would be a maintenance nightmare, and it wouldn&amp;rsquo;t scale beyond me. I needed a system. Claude Code calls these reusable prompts &lt;em&gt;skills&lt;/em&gt; — other platforms have the same idea under names like plugins or extensions. My first real experiment was &lt;code&gt;/docs-review&lt;/code&gt; — a reusable prompt that would run my writing through a consistent set of criteria before I committed it. Nothing fancy. I just wanted a reliable bar that didn&amp;rsquo;t depend on my mood or how much coffee I&amp;rsquo;d had.&lt;/p&gt;
&lt;p&gt;Then it occurred to me: every PR to our docs repo should get this automatically. So I wired it into our CI/CD pipeline. Meagan, my manager, loved it — and after a few weeks, she noticed that PR quality had improved dramatically. On almost every PR, contributors were now spontaneously pushing an &amp;ldquo;Addressing feedback&amp;rdquo; commit right after the automated review posts — catching and fixing issues before I ever saw the PR.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s when something clicked: I wasn&amp;rsquo;t writing prompts anymore. I was writing &lt;em&gt;modules&lt;/em&gt; — reusable, composable pieces of my own expertise.&lt;/p&gt;
&lt;p&gt;The insight was straightforward, but it changed how I thought about the whole system: if multiple skills need the same context — our style guide, our review criteria, our content standards — that context should live in one place and get consumed by everything that needs it. Just like a shared library. Just like any decent software project.&lt;/p&gt;
&lt;p&gt;I created a &lt;code&gt;REVIEW-CRITERIA.md&lt;/code&gt; file as the single source of truth for what a &amp;ldquo;good&amp;rdquo; docs PR review looks like at Pulumi. Every skill that does any kind of review pulls from it. Change it once, and everything gets smarter at once. Likewise with our style guide, our Hugo conventions, our navigation structure. All of that lives in central reference files that any skill can pull from. If something changes, I change it in one place and all the skills get the update.&lt;/p&gt;
&lt;p&gt;This also matters for token efficiency — which sounds like a nerdy footnote but isn&amp;rsquo;t, especially when automated reviews are running on every PR. Duplicating context across skills bloats token usage fast. Modularizing keeps it lean. Your CI/CD pipeline doesn&amp;rsquo;t care about elegance, but it definitely cares about cost.&lt;/p&gt;
&lt;p&gt;The mental model I kept coming back to: &lt;strong&gt;Don&amp;rsquo;t Repeat Yourself.&lt;/strong&gt; It&amp;rsquo;s the same principle that makes good software maintainable. It turns out it makes good AI workflows maintainable too.&lt;/p&gt;
&lt;h2 id="the-skill-catalog"&gt;The skill catalog&lt;/h2&gt;
&lt;p&gt;From there, the system grew organically. Whenever I found myself doing something more than once, I asked: &amp;ldquo;Can I turn this into a skill?&amp;rdquo; Here&amp;rsquo;s a sampling of what that produced:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;/fix-issue&lt;/code&gt;&lt;/strong&gt; — takes a &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt; issue and recommends a concrete plan of attack, so I go from &amp;ldquo;here&amp;rsquo;s a ticket&amp;rdquo; to &amp;ldquo;here&amp;rsquo;s what I&amp;rsquo;m doing&amp;rdquo; without the spinning-up tax.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;/shipit&lt;/code&gt;&lt;/strong&gt; — runs pre-commit checks, writes a focused commit message, and drafts a PR description.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;/pr-review&lt;/code&gt;&lt;/strong&gt; — full doc review on a PR branch: style guide, code examples, screenshots, optional test deployment, then an Approve/Merge/Request Changes dialog with a drafted comment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;/slack-to-issue&lt;/code&gt;&lt;/strong&gt; — converts &lt;code&gt;#docs&lt;/code&gt; &lt;a href="https://slack.com"&gt;Slack&lt;/a&gt; conversations into properly formed GitHub issues. Slack is where decisions happen; issues are where work gets tracked.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;/glow-up&lt;/code&gt;&lt;/strong&gt; — runs an older doc through the modern style guide and flags outdated screenshots, for digging out of accumulated technical debt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;/new-doc&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;/new-blog-post&lt;/code&gt;&lt;/strong&gt; — guide anyone through adding a new document or blog post with the right location, metadata, and navigation wiring. Engineers, marketers, whoever. The barrier to contributing just dropped significantly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;/docs-tools&lt;/code&gt;&lt;/strong&gt; — helps other repo users discover that any of this exists. Discoverability is a real problem with internal tooling.&lt;/p&gt;
&lt;div class="note note-info"&gt;
&lt;div class="icon-and-line"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--fill" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.4a9ac1016b9d8a688a5e7e867f96bdf80115a0739af8c688ba04791e15f64461.svg#p-info-fill"/&gt;&lt;/svg&gt;
&lt;div class="line"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="content"&gt;Slack&amp;rsquo;s built-in Claude integration isn&amp;rsquo;t the same Claude running your Claude Code workflows — they don&amp;rsquo;t share context or custom instructions. If you want consistent criteria across both surfaces, you need to bring your own backend. That&amp;rsquo;s exactly what &lt;code&gt;/slack-to-issue&lt;/code&gt; handles.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Other people started contributing skills to the repo — not because I asked, but because the pattern was legible enough to extend. Someone built a skill for SEO analysis. Marketing added their own review criteria. Engineers contributed workflows I never would have thought to build.&lt;/p&gt;
&lt;p&gt;The thing I&amp;rsquo;d built as a personal survival tool had become a shared platform. That happened because I treated the prompts like code: modular, reusable, documented, open for contribution.&lt;/p&gt;
&lt;h2 id="honest-limitations"&gt;Honest limitations&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s not a replacement for human judgment. These are probabilistic tools — they&amp;rsquo;re right most of the time, not all of the time. &lt;code&gt;/pr-review&lt;/code&gt; doesn&amp;rsquo;t approve PRs autonomously. It highlights things and then asks me, the human, to read them and make the call. The AI does the first pass; I do the last one. That&amp;rsquo;s not a workaround for a limitation — that&amp;rsquo;s the design.&lt;/p&gt;
&lt;p&gt;The system isn&amp;rsquo;t finished, either. It&amp;rsquo;s probably never finished. I&amp;rsquo;m still tweaking review criteria, still finding edge cases where a skill produces something weird, still adding new tools as new pain points emerge. Treating prompts like code means treating them like software: you ship, you iterate, you maintain. There&amp;rsquo;s no version 1.0 and done.&lt;/p&gt;
&lt;p&gt;And the ADHD angle is real but it&amp;rsquo;s not magic. There are still days where the paralysis wins. AI lowers the activation energy for starting; it doesn&amp;rsquo;t eliminate it. I&amp;rsquo;m still the one who has to show up. I suppose I could automate that too, but then we&amp;rsquo;d be in a whole different kind of dystopia.&lt;/p&gt;
&lt;div class="rounded-lg bg-violet-50 p-6 my-8"&gt;
&lt;p class="heading-4 m-0 mb-3 flex items-center gap-1.5"&gt;Turn your workflows into skills&lt;/p&gt;
&lt;div class="body-base m-0 text-gray-950"&gt;Pulumi&amp;rsquo;s Agent Skills bring the same modular approach to infrastructure, teaching your coding agent the conventions your team relies on.&lt;/div&gt;
&lt;a href="https://www.pulumi.com/docs/ai/skills/" data-track="blog-body-cta" class="btn btn-primary mt-4"&gt;
Get started
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--regular size-4" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.4a9ac1016b9d8a688a5e7e867f96bdf80115a0739af8c688ba04791e15f64461.svg#p-arrow-right-regular"/&gt;&lt;/svg&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;h2 id="lessons-to-share"&gt;Lessons to share&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Know your models and their costs.&lt;/strong&gt; At Pulumi we primarily use Claude, and I work in &lt;a href="https://claude.ai/claude-code"&gt;Claude Code&lt;/a&gt;; for most tasks I reach for Sonnet rather than Opus. Opus is excellent, but it&amp;rsquo;s significantly more expensive, and well-crafted instructions to Sonnet handle the vast majority of my work just as effectively.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Treat it like a coworker.&lt;/strong&gt; Don&amp;rsquo;t just issue commands and wait for output. Ask what it thinks. Push back when it&amp;rsquo;s wrong. Explain your reasoning. The more you engage conversationally, the better the results tend to be. That extends to alignment, too — before diving into a complex task, talk through the approach first. A few minutes of alignment up front beats iterating on a misunderstood spec. I&amp;rsquo;ve gone as far as adding personal instructions to my config — things like playing along when I&amp;rsquo;m pretending to be Captain Picard, or using colorful language when the context calls for it. (Yes, those are literal config settings.) That sounds frivolous, but it isn&amp;rsquo;t: a tool you actually enjoy using is a tool you&amp;rsquo;ll reach for instead of avoid.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modularize your workflow.&lt;/strong&gt; Don&amp;rsquo;t write one giant monolithic prompt that tries to do everything. Break it into focused skills that do one thing well and share common context through a central reference file. Easier to maintain, easier to debug, cheaper to run.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Version control your prompts.&lt;/strong&gt; Your skills are code. Treat them like code. Commit them, review them, iterate on them. If a skill starts producing weird output after a tweak, you&amp;rsquo;ll want to know what changed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think about token burn rate.&lt;/strong&gt; This matters most when running automation in CI/CD. Keep your skills focused — a skill that checks style doesn&amp;rsquo;t need to load your Hugo navigation conventions. The model only reads what you give it, so give it only what it needs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not everything needs to be a prompt.&lt;/strong&gt; This one is underappreciated: skills can include scripts, and that&amp;rsquo;s often the right call. When my team moves a doc in the repo, it needs to happen via &lt;code&gt;git mv&lt;/code&gt; to preserve history, and we need to add a redirect alias to the front matter to prevent 404s and protect SEO. That&amp;rsquo;s not something I want an AI to reason through from scratch every time — it&amp;rsquo;s a solved problem. So it&amp;rsquo;s a script. The skill just knows the script exists and what it does. Claude orchestrates; the script executes. That&amp;rsquo;s a cleaner, more reliable division of labor than asking an LLM to reinvent the wheel on every run.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not everything needs to be generative.&lt;/strong&gt; Corollary to the last point: if you need deterministic output, don&amp;rsquo;t use probabilistic tools. We have a skill that generates the meta image for blog posts — procedurally, not generatively. No AI-generated imagery. We have a brand to protect, and &amp;ldquo;let the AI vibe it out&amp;rdquo; isn&amp;rsquo;t a content strategy. The skill follows our visual standards programmatically and produces something consistent every time. Know what you&amp;rsquo;re automating and why.&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What&amp;rsquo;s next&lt;/h2&gt;
&lt;p&gt;The next frontier is bringing some of this tooling to the less technical members of the team — marketing, in particular. The skills I&amp;rsquo;ve built assume a certain comfort level with terminals and repos. That&amp;rsquo;s fine for engineers. It&amp;rsquo;s a barrier for everyone else. A friendly interface would lower that bar significantly — that&amp;rsquo;s the direction I&amp;rsquo;m currently exploring.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re a technical writer, a developer advocate, or a solo practitioner figuring out how AI fits into your workflow, the approach described here is a solid starting point. The tools matter, but the mental model matters more: treat your prompts like code. Make them reusable. Document them. Share them.&lt;/p&gt;
&lt;p&gt;Our &lt;a href="https://github.com/pulumi/docs"&gt;docs repo&lt;/a&gt; is public, so the skills are there for anyone who wants them. If you&amp;rsquo;re building something similar, steal freely — or contribute back.&lt;/p&gt;
&lt;p&gt;The blank page is still there. It&amp;rsquo;s just a lot less intimidating when you&amp;rsquo;ve got a good collaborator and a solid set of tools.&lt;/p&gt;
&lt;a
href="https://github.com/pulumi/docs/tree/master/.claude/commands"
class="btn btn-primary"
target="_blank"
rel="noopener noreferrer"
&gt;
See our docs skills for inspiration
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--regular text-sm ml-2" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.4a9ac1016b9d8a688a5e7e867f96bdf80115a0739af8c688ba04791e15f64461.svg#p-arrow-square-out-regular"/&gt;&lt;/svg&gt;
&lt;/a&gt;</description><author>Cam Soper</author><category>ai</category><category>automation</category><category>developer-experience</category></item></channel></rss>