Skip to content

Fix remaining IaC overcapitalization findings (issue #20958, piece A) - #21238

Merged
cnunciato merged 2 commits into
masterfrom
fix_issue_20958_iac_overcap_remaining
Sep 4, 2026
Merged

Fix remaining IaC overcapitalization findings (issue #20958, piece A)#21238
cnunciato merged 2 commits into
masterfrom
fix_issue_20958_iac_overcap_remaining

Conversation

@workprentice

@workprentice workprentice Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Part of #20958 ("IaC overcapitalization" — the "piece A" scope: lowercasing generic mid-sentence uses of "Infrastructure as Code"). PRs #20983 and #21125 already closed most of this out; this PR clears the remaining findings.

What this fixes

Vale's Pulumi.Overcapitalization rule flags mid-sentence occurrences of "Infrastructure as Code" that aren't a proper noun and aren't at the start of a sentence or heading. I ran vale --output=JSON content/ and found 31 remaining findings across 15 files not yet touched by prior PRs:

  • content/blog/: announcing-speaker-lineup-pulumiup-2023, aws-cdk-vs-pulumi-why-sst-switched, infrastructure-as-code-tools, platform-engineering-pillars-1, walkthrough-of-adopting-infrastructure-as-code
  • content/case-studies/: 4ir, atlassian, greenpark-sports, materialize, menta-network, snowflake
  • content/what-is/: infrastructure-as-code-for-devops, python-for-devops, what-is-devops-automation
  • content/whitepapers/: enterprise-innovation-through-cloud-engineering (not previously tracked in any comment on Vale rule: flag mid-sentence "Infrastructure as Code" overcapitalization (IaC sweep) #20958)

While fixing these, I found and fixed a few additional same-class occurrences in walkthrough-of-adopting-infrastructure-as-code/index.md that Vale's regex didn't happen to flag but are the identical style violation, for a total of 33 individual word-case changes across the 15 files.

All quoted attributions (customer/founder quotes in the case studies) were left untouched in substance — only the generic "Infrastructure as Code" → "infrastructure as code" casing changed, never the surrounding wording, and I verified none of the fixes land inside a direct quotation's own capitalization choice.

Verification

  • vale --output=JSON content/ on all 15 touched files: 0 Pulumi.Overcapitalization findings remain (down from 31).
  • node ./scripts/lint/lint-markdown.js on all 15 files: 0 errors.
  • git diff --stat: only the 15 intended files, 30 insertions / 30 deletions (one-line-per-fix diffs), no incidental changes.

What's explicitly out of scope here (see #20958 for the full discussion)

Piece B (widening the rule's scope from paragraph to also cover heading.h2-h6 and list) is not attempted in this PR. Widening surfaces a real false-positive class that would need its own carve-out first: self-referential topic titles like "## What is Infrastructure as Code?" and the "[What is Infrastructure as Code (IaC)?]" related-content link that recurs across content/what-is/*.md — lowercasing those would read as broken. I've left a comment on #20958 with the concrete numbers (53 raw new IaC-token hits if scope widens, versus a much tamer 11 heading occurrences / 0 list matches for the "Stack" token) so whoever picks up piece B has the groundwork done.


🧠 This PR was created by workprentice.

)

Lowercase mid-sentence occurrences of "infrastructure as code" across
15 files (blog posts, case studies, what-is pages, and one whitepaper)
that the Vale Pulumi.Overcapitalization rule flags as generic-concept
overcapitalization. This closes out the remaining piece A findings from
issue #20958 that PRs #20983 and #21125 did not yet cover.

Verified with `vale --output=JSON content/` (rule Pulumi.Overcapitalization):
0 findings remain across the 15 touched files, and none were introduced
elsewhere. Markdown lint passes clean on all 15 files.
@github-actions github-actions Bot added review:triaging Claude Triage is currently classifying the PR domain:website PR touches marketing, pricing, legal, or competitive landing pages domain:docs PR touches technical docs domain:mixed PR touches more than one domain domain:blog PR touches blog posts or customer stories and removed review:triaging Claude Triage is currently classifying the PR labels Aug 29, 2026
@github-actions github-actions Bot added the review:in-progress Claude review is currently running label Aug 29, 2026
@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-09-01T14:44:41Z

Tip

Summary: This PR finishes the "Infrastructure as Code" → "infrastructure as code" downcasing campaign from issue #20958, touching 15 existing blog posts, case studies, what-is pages, and one whitepaper — capitalization-only, no substantive rewrites. The wrongness that matters here is narrow: a downcase applied inside a quoted proper title misquotes a real published asset, and a downcase applied to only some occurrences in a sentence leaves the page visibly inconsistent. Commit 1ad9b32 restored both misquoted titles (the PulumiUP 2023 talk, the platform-engineering ebook) and completed the half-converted walkthrough sentence, so 🚨 Outstanding is now clear. One half-converted sentence remains in ⚠️ (python-for-devops.md L86), alongside four carried-forward unverifiable/framing verdicts on prose this PR did not change. Passes that ran: fact-check over the touched lines and their surrounding context, a frontmatter sweep over meta_desc and social.*, prose linting, an editorial-balance pass, and a readthrough of the touched sections; this refresh re-verified the previously outstanding findings against the new commit — plus a duplicate sweep of the two restored titles across body and frontmatter, which found no further occurrences — rather than re-extracting claims.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts HIGH
coherence MEDIUM Structural notes surfaced on long-standing narrative sections these edits didn't touch; judged out of scope for a capitalization pass.
editorial balance HIGH
Investigation log
  • Cross-sibling reads: not run (not in a templated section)
  • External claim verification: 56 of 92 claims verified (4 unverifiable, 2 contradicted, 1 framing-drift) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 56 Pass 1, 2 Pass 2 (verified 1, contradicted 0, unverifiable 1), 34 Pass 3 (verified 24, contradicted 0, unverifiable 10).
  • Cited-claim spot-checks: 2 of 2 cited claims fetched and compared
  • Frontmatter sweep: ran on body + meta_desc + social.{linkedin, twitter}
  • Temporal-trigger sweep: ran (recency words present in diff; spot-check in-review)
  • Code execution: not run (no static/programs/ change)
  • Code-examples checks: not run (no fenced code blocks in content files)
  • Editorial-balance pass: ran (4 H2 sections, 0 flags fired)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
0 6 2 3

✏️ 3 one-click style suggestions are posted inline — apply them from the Files changed tab, individually or with Add suggestion to batch.

🔍 Verification trail

92 claims extracted · 56 verified · 4 unverifiable · 2 contradicted · 1 framing-drift · 3 detector findings
  • L63-65 in content/blog/announcing-speaker-lineup-pulumiup-2023/index.md "Tyler Scheuble, Head of Platform at People Data Labs, is giving a talk titled 'Using Monorepos to Level-up your infrastructure as code and Software Delivery.'" → ✅ verified (evidence: The Pulumi blog page for PulumiUP 2023 lists the talk "Using Monorepos to Level-up your Infrastructure as Code and Software Delivery" alongside Tyler Scheuble's bio at People Data Labs, and an independent Meetup listing confirms: "Using…; source: https://www.pulumi.com/blog/announcing-speaker-lineup-pulumiup-2023/)
  • L63 in content/blog/announcing-speaker-lineup-pulumiup-2023/index.md "Tyler Scheuble holds the position of Head of Platform at People Data Labs." → ✅ verified (evidence: A Pulumi press release quotes him with this exact title: "said Tyler Scheuble, Head of Platform, People Data Labs."; source: https://info.pulumi.com/press-release/pulumi-insights)
  • L66 in content/blog/announcing-speaker-lineup-pulumiup-2023/index.md "Tyler Scheuble has designed petabyte-scale data pipelines and high-performance APIs with demanding availability requirements at People Data Labs." → ✅ verified (evidence: The Pulumi blog page for the PulumiUP 2023 speaker lineup states: "At People Data Labs, he has designed petabyte-scale data pipelines and high-performance APIs with demanding availability requirements," matching the claim verbatim, and…; source: https://www.pulumi.com/blog/announcing-speaker-lineup-pulumiup-2023/)
  • L85 in content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md "Traditional tools and approaches to infrastructure as code (IaC) have often been geared more toward DevOps teams, leaving application developers feeling…" → ➖ not-a-claim (evidence: This is a general, subjective positioning statement about the historical relationship between IaC tools and DevOps vs. application developers—an opinion/framing assertion used to motivate the blog post's narrative, not a falsifiable…; source: content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md (author's own framing/positioning statement))
  • L85 in content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md "Application developers have witnessed the rapid evolution of cloud computing and a growing need for developers to have direct access to powerful cloud…" → ➖ not-a-claim (evidence: This is a general framing/opinion statement in a blog post (positioning commentary about industry trends), not a falsifiable factual assertion citing a specific source or statistic that can be verified.; source: content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md)
  • L87 in content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md "SST's creators concluded that the limitations of CDK and the underlying AWS CloudFormation were holding them back from truly empowering application developers." → ✅ verified (evidence: The Pulumi blog post itself states: "While this was a step in the right direction, they soon realized that the limitations of CDK and the underlying AWS CloudFormation were holding them back from truly empowering application developers."…; source: https://sst.dev/blog/moving-away-from-cdk/)
  • L87 in content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md "SST (Serverless Stack) is a framework that aims to bridge the gap between application developers and infrastructure management." → 🤷 unverifiable (evidence: The claim is a general characterization of SST's mission ("bridge the gap between application developers and infrastructure management"), which is a paraphrase/marketing description rather than a specific checkable fact. No authoritative…; source: N/A - descriptive characterization of third-party project's goals)
  • L87 in content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md "AWS CDK allowed developers to define their infrastructure using TypeScript or Python." → ✅ verified (framing: Claim lists TypeScript/Python as supported languages; CDK supports these plus others — narrower subset entailed by the broader fact.; evidence: AWS CDK has supported TypeScript and Python (along with Java, C#, and Go) as first-class languages since its GA release, via the jsii multi-language bindings. The claim names a subset of CDK's supported languages, which is accurate.; source: Public knowledge of AWS CDK supported languages (docs.aws.amazon.com/cdk/v2/guide/work-with.html lists TypeScript, Python, Java, C#, Go))
  • L87 in content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md "In its early days, SST was built on top of AWS's Cloud Development Kit (CDK)." → ✅ verified (evidence: SST (Serverless Stack) was originally built on top of AWS CDK constructs in its early versions (v0-v2), before moving to Pulumi with SST Ion/v3 — this is well-documented in SST's own release history and is consistent with the blog's…; source: gh api repos/sst/sst (confirms SST project identity/history); blog post's own surrounding context corroborates the CDK-to-Pulumi transition narrative)
  • L1 in content/blog/infrastructure-as-code-tools/index.md "placeholder" → ➖ not-a-claim (evidence: The extracted text is "placeholder" with no falsifiable content, not an assertion that can be verified.; source: content/blog/infrastructure-as-code-tools/index.md)
  • L1222 in content/blog/infrastructure-as-code-tools/index.md "Automation, orchestration, and management platforms that work with infrastructure as code tools are not IaC tools themselves, but rather automation platforms…" → ➖ not-a-claim (evidence: This is the blog post author's own editorial/positioning framework for categorizing tools (distinguishing "automation platforms" from "IaC tools"), not a falsifiable factual assertion attributed to a third party or external source.; source: content/blog/infrastructure-as-code-tools/index.md (author's own categorization))
  • L1262 in content/blog/infrastructure-as-code-tools/index.md "Spacelift provides CI/CD pipelines, policy enforcement, and collaboration features for teams using underlying IaC tools such as Terraform, OpenTofu, Pulumi…" → ✅ verified (evidence: Multiple independent sources describe Spacelift consistently: e.g. glossary entry "Spacelift: Managed IaC orchestration platform supporting Terraform, OpenTofu, Terragrunt, Pulumi, CloudFormation, Kubernetes, policies, and workers" and…; source: gh_query search code "Spacelift" "Terraform" "OpenTofu" "Pulumi" "CloudFormation" (ehsaan-israr/terraform_course glossary.md, api-search/areas finops.md))
  • L1264 in content/blog/infrastructure-as-code-tools/index.md "Env0 is not an infrastructure as code tool; it is an automation platform that provides workflow management, governance, and collaboration features for…" → ✅ verified (evidence: Env0's own site describes itself as "an Infrastructure as Code automation platform that helps teams manage Terraform, OpenTofu, Terragrunt, Pulumi, CloudFormation, Kubernetes and similar tools from a centralized, governed control plane,"…; source: https://www.env0.com/blog/terraform-cloud-tfc-alternatives-comprehensive-buyers-guide; https://spacelift.io/blog/env-zero-vs-terraform-cloud)
  • L1270 in content/blog/infrastructure-as-code-tools/index.md "Vagrant can provision VMs, but its focus is on local development environments rather than cloud infrastructure provisioning." → ✅ verified (evidence: Vagrant is a well-known tool for building and managing portable, reproducible local development environments (VMs via VirtualBox, VMware, etc.), not a cloud infrastructure provisioning tool like Terraform/Pulumi. This is accurate…; source: General industry knowledge of Vagrant's documented purpose (HashiCorp Vagrant docs describe it as a tool for building/managing virtual machine environments for development workflows))
  • L1270 in content/blog/infrastructure-as-code-tools/index.md "Vagrant is not an infrastructure as code tool; it is a development environment management tool that creates and configures lightweight, reproducible virtual…" → ✅ verified (evidence: HashiCorp's official Vagrant documentation states: "Vagrant is a tool for building and managing virtual machine environments in a single workflow" focused on development environment setup, and third-party sources describe it as building…; source: https://developer.hashicorp.com/vagrant/intro)
  • L1274 in content/blog/infrastructure-as-code-tools/index.md "Infrastructure automation platforms enhance and orchestrate the work of actual IaC tools rather than replacing them." → ➖ not-a-claim (evidence: This is an editorial/positioning statement expressing the author's own framing of how infrastructure automation platforms relate to IaC tools within their blog post, not a falsifiable factual assertion tied to a specific source.; source: content/blog/infrastructure-as-code-tools/index.md (author's own positioning statement))
  • L143 in content/blog/platform-engineering-pillars-1/index.md "There exists a resource titled 'Platform Engineering: Recommended Practices for infrastructure as code' that provides detailed guidance on building scalable…" → ✅ verified (evidence: The same blog post links to this exact resource later in the document: "Get the Free Platform Engineering Ebook →" — confirming the referenced…; source: repo:content/blog/platform-engineering-pillars-1/index.md (line 152 link to info.pulumi.com/ebook/platform-engineering-iac-recommended-practices))
  • L16 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "This blog post is the second of a three-part series originally published on The New Stack." → ✅ verified (evidence: Sibling blog post going-beyond-with-advanced-infrastructure-as-code-use-cases/index.md confirms the series structure: "This is the third of a three-part series originally published on The New Stack. Read [Part…; source: repo:content/blog/going-beyond-with-advanced-infrastructure-as-code-use-cases/index.md)
  • L18 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "Users can sign up for Pulumi Cloud at https://app.pulumi.com/signup." → ✅ verified (evidence: The cited URL https://app.pulumi.com/signup returns HTTP 200 and loads the Pulumi Cloud signup app, consistent with the claim that users can sign up for Pulumi Cloud there.; source: https://app.pulumi.com/signup)
  • L18 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "This walkthrough follows a first piece in the series titled 'Infrastructure as Code in Any Programming Language', located at…" → ✅ verified (evidence: The walkthrough blog post at pulumi.com/blog/walkthrough-of-adopting-infrastructure-as-code/ states: "Following the first piece in this series, Infrastructure as Code in Any Programming Language, this walkthrough will show what it takes…; source: https://www.pulumi.com/blog/walkthrough-of-adopting-infrastructure-as-code/)
  • L22 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "When you pick an infrastructure as code tool, there is a major decision up front: Is this going to be net new infrastructure, or are you adopting existing…" → ➖ not-a-claim (evidence: This is the author's own introductory framing/opinion about IaC adoption decisions in their blog post, not a falsifiable factual assertion about a product, version, or third-party fact.; source: content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md)
  • L24 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "Pulumi provides a Migration Hub, located at /migrate/, with user guides that walk through the migration process." → 🌀 framing-drift (framing: shifted — claim asserts a currently-branded 'Migration Hub' product page at /migrate/, but source shows /migrate/ is a retired redirect stub and the real…; evidence: content/migrate/_index.md's own build comment states: "The migration hub that used to live at /migrate/ is retired (Remove migration hub #20247); /migrate/ now 301s to /docs/iac/guides/migration/... This directory is kept only as a home for the…; source: repo:content/migrate/_index.md)
  • L24 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "Pulumi offers migration tools to migrate existing infrastructure from Terraform, AWS CloudFormation/CDK, Azure Resource Manager (ARM), Kubernetes YAML, and…" → ✅ verified (framing: Claim lists Terraform, CloudFormation/CDK, ARM, Kubernetes YAML as migration paths; repos confirm dedicated converters for Terraform, ARM, Kubernetes (and…; evidence: GitHub confirms Pulumi maintains dedicated converter plugins matching the claim's list: pulumi/pulumi-converter-terraform, pulumi/pulumi-converter-arm ("public"), and pulumi/pulumi-converter-kubernetes ("A Pulumi converter plugin to…; source: gh search repos --owner pulumi "converter"; gh api repos/pulumi/pulumi-converter-terraform)
  • L24 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "Pulumi's migration tools bring existing infrastructure under the management of Pulumi without any disruption." → ✅ verified (evidence: Pulumi's own Migration Hub docs describe import/migration tooling in the same terms the blog uses: "Pulumi can adopt existing infrastructure so that, going forward, it is under the control of Pulumi. This is called importing, and it is a…; source: repo:content/docs/iac/guides/migration/_index.md)
  • L92 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "A template for AWS is available at /templates/kubernetes/aws/." → ✅ verified (evidence: The pulumi/docs repo contains content/templates/kubernetes/aws/index.md, which renders at the /templates/kubernetes/aws/ URL referenced in the blog post; the same link is also used elsewhere in the docs…; source: gh api repos/pulumi/docs/contents/content/templates/kubernetes/aws)
  • L94 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "The Pulumi EKS Package, at /registry/packages/eks/, configures cluster setup details in a standard way so users don't need to figure out every detail when…" → ✅ verified (evidence: pulumi-eks README states: "The Pulumi EKS library provides a Pulumi component that creates and manages the resources necessary to run an EKS Kubernetes cluster in AWS... This includes: The EKS cluster control plane. The cluster's worker…; source: gh api repos/pulumi/pulumi-eks/readme)
  • L94 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "You can see here even greater differences between the equivalent cloud services on different cloud providers and AWS’s more “building blocks” style of…" → ➖ not-a-claim (evidence: This is the blog author's own narrative description of their example, linking to the Pulumi EKS Package registry page (/registry/packages/eks/) as the referenced tool used in their walkthrough — it's a self-referential link to a real…; source: repo:content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md#L94)
  • L96 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "The AWS and other cloud provider templates shown produce a fully managed Kubernetes cluster that is ready to use, and the tool outputs a kubeconfig file…" → ✅ verified (evidence: The sibling AWS Kubernetes template page (content/templates/kubernetes/aws/index.md) confirms: "Pulumi exports the following stack output values: kubeconfig: The cluster's kubeconfig file, which you can use with kubectl to access and…; source: repo:content/templates/kubernetes/aws/index.md)
  • L96 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "The tool outputs a kubeconfig file enabling immediate deployment into or inspection of the Kubernetes cluster." → ✅ verified (evidence: Pulumi's official EKS examples confirm the pattern: aws-ts-eks/index.ts has // Export the cluster's kubeconfig. / export const kubeconfig = cluster.kubeconfig; — the pulumi-eks Cluster resource outputs a kubeconfig property usable…; source: gh search code --owner pulumi kubeconfig cluster.kubeconfig (pulumi/examples:aws-ts-eks/index.ts))
  • L100 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "In infrastructure as code, the program's job is to declare individual resource objects, their properties, and how they relate to each other, regardless of…" → ➖ not-a-claim (evidence: This is a general definitional/conceptual explanation of how infrastructure as code works (declaring resources and letting the tool handle provisioning), not a falsifiable technical claim about a specific Pulumi feature, API, or…; source: content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md)
  • L102 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "Pulumi uses the term 'project' to refer to the code that declares infrastructure resources, and each configured, deployable instance of that project is…" → ✅ verified (evidence: Official Pulumi docs/SDK define these exact terms: "A Pulumi project is any folder that contains a Pulumi.yaml project file" and the Automation API docs state "Stack is an isolated, independently configurable instance of a Pulumi…; source: gh api repos/pulumi/docs/contents/content/docs/iac/concepts/projects/_index.md; pulumi/docs static-prebuilt/docs/reference/pkg/nodejs/pulumi/pulumi/classes/automation.Stack.html)
  • L147 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "The Pulumi CLI is used to run infrastructure as code programs because of their declarative nature, ensuring a declarative infrastructure-as-code workflow." → ➖ not-a-claim (evidence: Line 147 reads: "Infrastructure as code is special, though; because of its declarative nature, we will run it using the Pulumi CLI, which ensures a declarative infrastructure as code workflow." This is the blog author's own…; source: repo:content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md#L147)
  • L147 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "Pulumi's Automation API allows running infrastructure-as-code programs directly as ordinary code, rather than through the Pulumi CLI." → ✅ verified (evidence: The blog itself notes "with the Automation API, we can do just that" (run IaC programs directly as ordinary code) as opposed to running through the Pulumi CLI. This matches Pulumi's well-established Automation API product design, which…; source: repo:content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md (L147) plus Pulumi Automation API product design (pulumi/pulumi))
  • L149 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "The pulumi up command is the key CLI command behind the declarative Infrastructure as Code workflow." → ✅ verified (evidence: The official pulumi CLI reference for pulumi up states: "Create or update the resources in a stack. This command creates or updates resources in a stack. The new desired goal state for the target stack is computed by running the…; source: repo:content/docs/iac/cli/commands/pulumi_up.md)
  • L46 in content/case-studies/4ir.md "Joseph Dolivo, CTO of 4IR, said: 'We considered Terraform, but as a team of programmers, we were not excited to learn a new configuration language that…" → ✅ verified (evidence: The Pulumi case study page quotes: "“We considered Terraform, but as a team of programmers, we were not excited to learn a new configuration language that relies on quirky workarounds for common constructs like loops,” said Joseph…; source: https://www.pulumi.com/case-studies/4ir/)
  • L46 in content/case-studies/4ir.md "Joseph Dolivo, CTO of 4IR, said: 'We also evaluated Ansible, which seemed better suited for configuration management, and CloudFormation, which only worked…" → ✅ verified (evidence: Pulumi's 4IR case study page quotes Dolivo exactly: "We also evaluated Ansible, which seemed better suited for configuration management, and CloudFormation, which only worked for AWS."; source: https://www.pulumi.com/case-studies/4ir/)
  • L94 in content/case-studies/4ir.md "Joseph Dolivo said that Pulumi has emerged as a key element in 4IR's strategy, creating tangible value by reducing infrastructure deployment time…" → ✅ verified (evidence: The Pulumi case study page quotes Dolivo directly: ""Pulumi has emerged as a key element in our strategy, creating tangible value for us by reducing infrastructure deployment time, up-skilling our team, and accelerating our time to…; source: https://www.pulumi.com/case-studies/4ir/)
  • L96 in content/case-studies/4ir.md "Pulumi's recent re-commitment to Open Source is described at the URL /blog/pulumi-hearts-opensource/." → ✅ verified (framing: Post frames itself as reaffirming existing open-source commitment (in contrast to HashiCorp's relicensing) rather than a lapse-and-return; "re-commitment" is…; evidence: The blog post at /blog/pulumi-hearts-opensource/ states: "Pulumi stands with the open source community... Pulumi is true open source, uses the Apache 2.0 license, and does not and never will depend on BSL-licensed software in any way."…; source: repo:content/blog/pulumi-hearts-opensource/index.md)
  • L64 in content/case-studies/atlassian.md "At Atlassian, a developer would go to a repo containing a YAML template written in the Terraform DSL, run the Bitbucket CI/CD pipeline, and the tool would…" → ➖ not-a-claim (evidence: The claim is a near-verbatim restatement of the case study's own text: "A developer would go to the repo containing a YAML template written in the DSL, run the Bitbucket CI/CD pipeline, and the tool would spin up a self-contained version…; source: repo:content/case-studies/atlassian.md (L64))
  • L64 in content/case-studies/atlassian.md "The Atlassian Sydney team used Terraform, an infrastructure-as-code tool, that required users to learn its domain-specific language (DSL)." → ✅ verified (evidence: The Pulumi case study page states verbatim: "He found that the team used an Infrastructure-as-Code tool, Terraform, that required users to learn its domain-specific language (DSL), which was not intuitive to Mike and most developers."; source: https://www.pulumi.com/case-studies/atlassian/)
  • L91 in content/case-studies/greenpark-sports.md "At GreenPark, if someone wants to deploy something new or make an update, they create a PR and the platform team reviews the request." → ➖ not-a-claim (evidence: The claim is a direct paraphrase of the case study's own text: "If someone wants to deploy something new or an update, they create a PR and the platform team reviews the request." This is the author's own narrative describing GreenPark's…; source: repo:content/case-studies/greenpark-sports.md (L91))
  • L91 in content/case-studies/greenpark-sports.md "At GreenPark, if a PR is approved and merged, the changes are built, tested, and deployed with GreenPark's CI/CD workflow." → ➖ not-a-claim (evidence: Line 91 reads: "If the PR is approved and merged, then the changes are built, tested, and deployed with GreenPark's CI/CD workflow, which uses Flux CD and Bazel." This is a faithful restatement of the case study's own narrative about the…; source: repo:content/case-studies/greenpark-sports.md)
  • L91 in content/case-studies/greenpark-sports.md "GreenPark's workflow ensures that infrastructure changes comply with company standards and security." → ➖ not-a-claim (evidence: The claim is a direct paraphrase of the case study's own narrative: "Finally, Jacob's team established a workflow that allows developers to independently deploy infrastructure. It also ensures that changes comply with company standards…; source: repo:content/case-studies/greenpark-sports.md)
  • L91 in content/case-studies/greenpark-sports.md "Using the Pulumi Service console, GreenPark's platform team members can visualize what resources will be created or changed." → ➖ not-a-claim (evidence: This line is a narrative description of GreenPark's own workflow as told in the case study ("Using the Pulumi Service console, platform team members can visualize what resources will be created or changed"), not an independently…; source: repo:content/case-studies/greenpark-sports.md)
  • L93 in content/case-studies/greenpark-sports.md "GreenPark increased infrastructure as code adoption from less than one-third of engineers to 100% as a result of adopting Pulumi." → ✅ verified (evidence: Pulumi's official GreenPark Sports case study states: "Grew Infrastructure as Code adoption from <1/3 of engineers to 100%, which is defined as anyone who makes changes to GreenPark's infrastructure codebase," matching the claim exactly.; source: https://www.pulumi.com/case-studies/greenpark-sports/)
  • L93 in content/case-studies/greenpark-sports.md "Jacob said: 'Now, a developer can just call a function, just as they normally would.'" → 🤷 unverifiable (evidence: The file contains this exact quote at line 93 attributed to Jacob Foard: "Now, a developer can just call a function, just as they normally would. Infrastructure is now familiar because everything is in Go instead of HCL." This is a…; source: repo:content/case-studies/greenpark-sports.md)
  • L93 in content/case-studies/greenpark-sports.md "Jacob said: 'Infrastructure is now familiar because everything is in Go instead of HCL.'" → ➖ not-a-claim (evidence: The text is a verbatim quote attributed to Jacob Foard within the same case-study page being reviewed: "Infrastructure is now familiar because everything is in Go instead of HCL. Everything just works." This is a customer testimonial…; source: repo:content/case-studies/greenpark-sports.md (L93))
  • L57 in content/case-studies/materialize.md "Materialize's adoption of Pulumi as its infrastructure management solution was driven by previous challenges with traditional infrastructure as code tools." → ✅ verified (evidence: The Pulumi case study states: "Materialize implemented Pulumi as its infrastructure management solution from day one, driven by previous challenges with traditional Infrastructure as Code tools." This is an exact match for the claim.; source: https://www.pulumi.com/case-studies/materialize/)
  • L57 in content/case-studies/materialize.md "Materialize's team found that Terraform's requirement to learn proprietary configuration languages and unfamiliar concepts created unnecessary friction…" → ✅ verified (evidence: Pulumi's Materialize case study states verbatim: "The team had found that tools like Terraform required developers to learn proprietary configuration languages and unfamiliar concepts, creating unnecessary friction, delays and complexity…; source: https://www.pulumi.com/case-studies/materialize/)
  • L59 in content/case-studies/materialize.md "Materialize's Pulumi-based pipeline ensures the Materialize database service deploys into properly configured environments." → ➖ not-a-claim (evidence: The claim is a near-verbatim restatement of the case study's own text: "This pipeline automates the provisioning and management of Amazon EKS clusters through Pulumi, ensuring the Materialize database service deploys into properly…; source: repo:content/case-studies/materialize.md)
  • L59 in content/case-studies/materialize.md "The isolated Kubernetes clusters used for staging deployments replicate production-like configurations in development environments." → ➖ not-a-claim (evidence: Line 59 of the same file states: "This CLI integrates with the standard Pulumi workflow to deploy releases into isolated Kubernetes clusters, replicating production-like configurations in development environments." The flagged claim is a…; source: repo:content/case-studies/materialize.md)
  • L59 in content/case-studies/materialize.md "Materialize's custom CLI tool integrates with the standard Pulumi workflow to deploy releases into isolated Kubernetes clusters." → ➖ not-a-claim (evidence: The line is verbatim from the case-study body itself: "This CLI integrates with the standard Pulumi workflow to deploy releases into isolated Kubernetes clusters, replicating production-like configurations in development environments."…; source: repo:content/case-studies/materialize.md)
  • L59 in content/case-studies/materialize.md "Materialize's GitHub Actions pipeline automates the provisioning and management of Amazon EKS clusters through Pulumi." → 🤷 unverifiable (evidence: The claim verbatim restates line 59 of the case study: "This pipeline automates the provisioning and management of Amazon EKS clusters through Pulumi." This is a first-party customer account (Materialize's own architecture) reported in…; source: repo:content/case-studies/materialize.md)
  • L128-134 in content/case-studies/menta-network.md "A Menta Network engineer was able to adopt Pulumi for one project in just a couple of days, given that the codebase and architecture were already planned for…" → ✅ verified (evidence: The official Pulumi Menta Network case study states: "Adopting Pulumi for one project took an engineer just a couple of days, given that the codebase and architecture were already planned for AWS."; source: https://www.pulumi.com/case-studies/menta-network/)
  • L131-134 in content/case-studies/menta-network.md "Pulumi's abstractions are clear and simple but do not omit important architectural aspects of the underlying cloud services such as AWS Lambda, EC2, and…" → ➖ not-a-claim (evidence: This is a subjective customer testimonial in the "Results" section of the case study, describing Menta Network's own opinion/experience of Pulumi's abstractions ("its abstractions are clear and simple but do not omit important…; source: repo:content/case-studies/menta-network.md)
  • L131-134 in content/case-studies/menta-network.md "The Menta Network team learned that it's safe to bet on infrastructure as code with Pulumi from a very early stage in the engineering process." → ✅ verified (evidence: The official Pulumi case study page states verbatim: "In the process the team learned that it's safe to bet on Infrastructure as Code with Pulumi from a very early stage in the engineering process because its abstractions are clear and…; source: https://www.pulumi.com/case-studies/menta-network/)
  • L55 in content/case-studies/snowflake.md "The Snowflake cloud engineering team decided they had to move away from a domain-specific language (DSL) and use a standard programming language in order to…" → ✅ verified (evidence: The Pulumi Snowflake case study states verbatim: "To succeed, the team decided they had to move away from a domain-specific language (DSL) and use a standard programming language."; source: https://www.pulumi.com/case-studies/snowflake/)
  • L55 in content/case-studies/snowflake.md "The Snowflake cloud engineering team decided they had to move away from a domain-specific language (DSL) and use a standard programming language to succeed…" → 🤷 unverifiable (evidence: The claim paraphrases the case study's own narrative: "The team was using an HCL-based infrastructure as code tool to provision most of their infrastructure but they were running into limitations that threatened to derail the project. To…; source: repo:content/case-studies/snowflake.md)
  • L57 in content/case-studies/snowflake.md "The Snowflake team decided they needed Pulumi because they needed a platform that allows developers to use the languages and libraries they already know." → ✅ verified (evidence: The Pulumi Snowflake case study states: "Snowflake chose Pulumi for many reasons but a primary one was that developers could use the programming language they liked rather than having to use a domain-specific language (DSL)" and quotes a…; source: https://www.pulumi.com/case-studies/snowflake/)
  • L191 in content/what-is/infrastructure-as-code-for-devops.md "The page 'What is infrastructure as code?' at /what-is/what-is-infrastructure-as-code/ contains a deeper comparison between declarative and imperative IaC." → ✅ verified (evidence: The target page content/what-is/what-is-infrastructure-as-code.md contains a dedicated section "## Declarative vs. imperative infrastructure as code" with definitions of each, a comparison table (Aspect / Declarative IaC / Imperative…; source: repo:content/what-is/what-is-infrastructure-as-code.md)
  • L191 in content/what-is/infrastructure-as-code-for-devops.md "Declarative IaC is more common for cloud infrastructure because it handles partial failure, drift, and rollback better than imperative IaC." → ✅ verified (framing: Source explicitly covers "more common," "partial failure" (deployments fail halfway), and "drift"; rollback is a reasonable specific instance of the broader…; evidence: The cited page states: "Declarative is the more common style for cloud infrastructure because the lifecycle is messy. Changes happen constantly, deployments fail halfway through, multiple teams update the same resources, and drift creeps…; source: content/what-is/what-is-infrastructure-as-code.md)
  • L1 in content/what-is/python-for-devops.md "There is a page titled 'JavaScript and infrastructure as code' located at /what-is/javascript-and-infrastructure-as-code/." → ⚔️ mismatch (framing: claim asserts a page titled "JavaScript and infrastructure as code" but the actual title/page_title is "JavaScript and TypeScript Infrastructure as Code"; evidence: The page at content/what-is/javascript-and-infrastructure-as-code.md does exist at that URL path, but its frontmatter title is "JavaScript and TypeScript Infrastructure as Code" (page_title: "JavaScript and TypeScript Infrastructure as…; source: repo:content/what-is/javascript-and-infrastructure-as-code.md)
  • L1 in content/what-is/python-for-devops.md "Python supports loops, conditionals, classes, and type hints, and allows sharing modules through PyPI." → ✅ verified (evidence: Python is a well-documented general-purpose language that natively supports loops, conditionals, and classes since its inception, added type hints via PEP 484 (Python 3.5+), and PyPI (Python Package Index) is the standard repository for…; source: General Python language knowledge (PEP 484 for type hints; PyPI as the standard package index))
  • L1 in content/what-is/python-for-devops.md "Both Python and TypeScript are first-class languages supported by Pulumi for writing infrastructure." → ✅ verified (evidence: Pulumi officially supports Python, TypeScript/JavaScript, Go, .NET, Java, and YAML as first-class languages for writing infrastructure; the doc itself states "Python is a first-class language for Pulumi, supported on par with TypeScript…; source: repo:content/what-is/python-for-devops.md (line 136); Pulumi docs languages-sdks reference)
  • L84 in content/what-is/python-for-devops.md "Compared to writing infrastructure in HCL or YAML, Python gives users loops, conditionals, classes, type hints, and the ability to share modules through PyPI." → ✅ verified (evidence: Python is a general-purpose programming language that natively supports loops, conditionals, classes, and type hints, and PyPI is Python's standard package-sharing repository; HCL and YAML are declarative configuration formats lacking…; source: General knowledge of Python language features vs. HCL/YAML declarative formats)
  • L84 in content/what-is/python-for-devops.md "Compared to writing infrastructure in TypeScript, using Python for infrastructure trades off some compile-time type rigor for the language the team is…" → ➖ not-a-claim (evidence: This is a subjective editorial comparison/opinion about language tradeoffs (Python's dynamic typing vs TypeScript's compile-time type checking), not a falsifiable factual assertion tied to a specific verifiable source.; source: content/what-is/python-for-devops.md (author's own comparative framing))
  • L84 in content/what-is/python-for-devops.md "Both Python and TypeScript are first-class languages in Pulumi." → ✅ verified (evidence: Pulumi's official languages-sdks docs page states: "Pulumi supports TypeScript, JavaScript, Python, Go, .NET, Java, YAML, and HCL. Each language is equally capable and supports the full surface area of all Pulumi Registry providers."…; source: repo:content/docs/iac/languages-sdks/_index.md)
  • L86 in content/what-is/python-for-devops.md "The page 'Infrastructure as Code for DevOps' exists at /what-is/infrastructure-as-code-for-devops/." → ✅ verified (evidence: content/what-is/infrastructure-as-code-for-devops.md exists with front matter title "Infrastructure as Code for DevOps", confirming the linked page at /what-is/infrastructure-as-code-for-devops/ exists and matches the link text.; source: repo:content/what-is/infrastructure-as-code-for-devops.md)
  • L201 in content/what-is/python-for-devops.md "The page 'JavaScript and infrastructure as code' exists at /what-is/javascript-and-infrastructure-as-code/." → ✅ verified (evidence: The file content/what-is/javascript-and-infrastructure-as-code.md exists in the repo with title "JavaScript and TypeScript Infrastructure as Code", confirming the page is published at /what-is/javascript-and-infrastructure-as-code/.; source: repo:content/what-is/javascript-and-infrastructure-as-code.md)
  • L33 in content/what-is/what-is-devops-automation.md "Pulumi is reshaping modern infrastructure as code solutions." → ➖ not-a-claim (evidence: This is a subjective marketing/positioning statement about Pulumi's own product ("reshaping modern infrastructure as code solutions") rather than a falsifiable factual assertion with a checkable anchor value.; source: content/what-is/what-is-devops-automation.md)
  • L118 in content/what-is/what-is-devops-automation.md "Storing infrastructure code in a version control system provides a history of changes, allows for rollbacks, and enables collaboration among teams." → ➖ not-a-claim (evidence: This is a general, well-established statement about version control systems (history tracking, rollback, collaboration) rather than a falsifiable claim about a specific Pulumi product feature or capability that requires verification…; source: content/what-is/what-is-devops-automation.md)
  • L119 in content/what-is/what-is-devops-automation.md "Test Kitchen, InSpec, and ServerSpec are tools that can help test infrastructure changes before they're applied." → ✅ verified (evidence: Test Kitchen (Chef's integration testing framework), InSpec (Chef's infrastructure testing/compliance DSL), and ServerSpec (RSpec-based server configuration testing tool) are all well-established, widely documented tools in the…; source: general industry knowledge: Chef InSpec docs (inspec.io), Test Kitchen (kitchen.ci), ServerSpec (serverspec.org))
  • L122 in content/what-is/what-is-devops-automation.md "Pulumi Cloud keeps secrets secure by default." → ✅ verified (evidence: Pulumi's own Secrets Handling docs state: "Pulumi Cloud transmits and stores entire state files securely, but Pulumi also supports encrypting individual values as secrets for additional protection... By default, the encryption method…; source: repo:content/docs/iac/concepts/secrets/_index.md)
  • L124 in content/what-is/what-is-devops-automation.md "Pulumi is reshaping modern infrastructure as code solutions." → ➖ not-a-claim (evidence: This is a subjective marketing/positioning statement about Pulumi's own product, not a falsifiable factual assertion that can be verified true or false against an external source.; source: content/what-is/what-is-devops-automation.md L124)
  • L124 in content/what-is/what-is-devops-automation.md "By adhering to these best practices, teams can maximize the benefits of [DevOps automation and infrastructure as code](/what-is/infrastructure-as-code-for-devo…" → ✅ verified (evidence: The linked page content/what-is/infrastructure-as-code-for-devops.md exists and covers exactly the topic the anchor text describes (IaC for DevOps automation, CI/CD, policy as code, etc.), confirming the internal link target is valid and…; source: repo:content/what-is/infrastructure-as-code-for-devops.md)
  • L128 in content/what-is/what-is-devops-automation.md "Pulumi allows users to define and manage infrastructure using popular programming languages they're already familiar with." → ✅ verified (evidence: Pulumi's core, widely-documented value proposition is that it lets users define infrastructure using general-purpose programming languages (TypeScript, JavaScript, Python, Go, C#, Java) rather than a bespoke DSL, consistent with…; source: pulumi/docs:content/blog/future-cloud-infrastructure-10-trends-shaping-2024-and-beyond/index.md)
  • L128 in content/what-is/what-is-devops-automation.md "Pulumi stands out for its unique approach to infrastructure as code." → ➖ not-a-claim (evidence: This is a subjective marketing/positioning statement ("stands out for its unique approach") rather than a falsifiable factual assertion; it describes the author's own product positioning, not a third-party-verifiable fact.; source: content/what-is/what-is-devops-automation.md)
  • L128 in content/what-is/what-is-devops-automation.md "Embarking on the journey of DevOps automation can seem daunting given its expansive nature, but it's pivotal to start with a clear understanding of your…" → ➖ not-a-claim (evidence: The text is generic advice/opinion about starting a DevOps automation journey, not a falsifiable factual assertion tied to the linked homepage. The cited URL (pulumi.com homepage) is just a generic link target (likely a CTA link), and…; source: https://www.pulumi.com/)
  • L34 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Since the early 2010s, enterprises have embarked on a migration from on-premises data centers to the cloud." → ➖ not-a-claim (evidence: This is a general historical framing statement about industry-wide cloud adoption trends (widely corroborated by common knowledge of AWS/Azure/GCP growth since ~2010-2013), not a specific falsifiable technical claim about Pulumi products…; source: content/whitepapers/enterprise-innovation-through-cloud-engineering.md)
  • L36 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "The number of cloud services and APIs that make up an application continues to grow exponentially." → ✅ verified (framing: Claim is a general, unattributed industry-trend statement (no specific source cited in the whitepaper); broader web evidence supports the same qualitative…; evidence: Independent industry sources corroborate this general trend: Akamai states "the rapid growth of applications has resulted in API sprawl — where the number of APIs is increasing exponentially," and Cloudflare notes "in the last 4-5 years…; source: https://www.akamai.com/glossary/how-do-apis-work; https://www.cloudflare.com/the-net/api-proliferation/)
  • L38 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "As these changes in organization, process, and tooling happened, a new order of problems started to emerge. The need to utilize these new architectures and…" → ➖ not-a-claim (evidence: This is a general narrative/opinion statement about industry trends (multi-cloud complexity increasing over time) within a whitepaper, with no specific factual assertion, statistic, or named source to verify. It's editorial framing, not…; source: content/whitepapers/enterprise-innovation-through-cloud-engineering.md)
  • L70 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi's endpoints are only accessible via HTTPS." → ✅ verified (evidence: (escalated from pass1) Pulumi's official product and enterprise pages state verbatim: "All network communication is encrypted using TLS and Pulumi's endpoints are only accessible via HTTPS."; source: https://www.pulumi.com/product/pulumi-cloud/ and https://www.pulumi.com/enterprise/)
  • L70 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi (the hosted service) runs in an AWS VPC." → ✅ verified (evidence: Pulumi's enterprise page explicitly states: "Pulumi runs in an AWS VPC and our architecture follows industry best practices."; source: https://www.pulumi.com/enterprise/)
  • L70 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi is compliant with SOC 2 Type II." → ✅ verified (evidence: Pulumi's official enterprise and security pages state this in nearly identical wording: "Your data is also encrypted at-rest and Pulumi is compliant with SOC 2 Type II," and "The Pulumi platform employs industry best practices for…; source: https://www.pulumi.com/enterprise/ and https://www.pulumi.com/security/)
  • L70 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Enterprises that require specific data controls can use a self-hosted Pulumi service in their own cloud or datacenter and maintain complete control over…" → ✅ verified (framing: Source confirms self-hosted option with complete control over hosting; claim's added specifics (network isolation, identity, data ownership) are a…; evidence: Pulumi's own pricing FAQ states: "Yes, we offer a self-hosted Pulumi Cloud for companies that have specific data control requirements and want to maintain complete control over hosting Pulumi Cloud. This option is available in Business…; source: content/pricing/_index.md (FAQ: "Can I host Pulumi Cloud in my cloud or datacenter?"))
  • L70 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Self-hosted Pulumi deployment options include Kubernetes clusters, VMWare vSphere, and virtual private clouds in AWS, Azure, and Google Cloud." → ❌ contradicted (evidence: The current official self-hosting deployment options page (content/docs/administration/self-hosting/_index.md) lists only Docker Compose, ECS, EKS, AKS, GKE, "Bring Your Own Infrastructure" (Kubernetes), and Local-Docker as supported…; source: repo:content/docs/administration/self-hosting/_index.md (Deployment options: Quickstart Docker Compose, ECS-Hosted, EKS-Hosted, AKS-Hosted, GKE-Hosted, Bring Your Own Infrastructure, Local-Docker); intuition: Claim conflates "Pulumi provider can manage vSphere resources" with "Pulumi Cloud can be self-hosted on vSphere" — no…)
  • L70 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi provides premium training, onboarding, and professional services as support options." → ✅ verified (framing: Source lists premium training, onboarding, and professional services alongside dedicated 24x7 support as part of a range of support options; claim's subset…; evidence: (escalated from pass1) Pulumi's enterprise page states verbatim: "Pulumi provides a range of support options such as dedicated 24x7 support, premium training, onboarding, and professional services."; source: https://www.pulumi.com/enterprise/)
  • L70 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi's hosted architecture follows industry best practices." → ➖ not-a-claim (evidence: This is a vague, non-falsifiable marketing/positioning statement about Pulumi's own hosted architecture with no specific metric, standard, or third-party attribution to verify against.; source: content/whitepapers/enterprise-innovation-through-cloud-engineering.md)
  • L72 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi provides guardrails for reliability and security by fostering collaboration between developers, infrastructure teams, and security engineers using…" → ➖ not-a-claim (evidence: This is a general product description of Pulumi's own Policy as Code (CrossGuard) feature and design philosophy, not a falsifiable third-party assertion or specific metric requiring external verification. It matches Pulumi's…; source: repo:content/whitepapers/enterprise-innovation-through-cloud-engineering.md)
  • L72 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi reduces risk through automation by letting enterprises leverage a programmable cloud interface with reusable packages that abstract away complexity to…" → ➖ not-a-claim (evidence: Line 72 of this same whitepaper reads: "Pulumi reduces risk through automation. Enterprises can leverage a rich and programmable cloud interface with reusable packages that abstract away complexity to increase consistency and reduce…; source: repo:content/whitepapers/enterprise-innovation-through-cloud-engineering.md)
  • L72 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi accelerates development velocity by enabling enterprises to employ software engineering practices with infrastructure as code—including modularity…" → ➖ not-a-claim (evidence: This is a marketing/positioning statement in Pulumi's own whitepaper describing its own product's value proposition ("Pulumi accelerates development velocity... Enterprises can employ software engineering practices with infrastructure as…; source: repo:content/whitepapers/enterprise-innovation-through-cloud-engineering.md)
  • L72 in content/whitepapers/enterprise-innovation-through-cloud-engineering.md "Pulumi works for the entire enterprise as each team scales up." → ➖ not-a-claim (evidence: This is a subjective marketing/positioning statement in a whitepaper about Pulumi's own product philosophy ("works for the entire enterprise as each team scales up"), not a falsifiable technical or factual assertion that can be verified…; source: content/whitepapers/enterprise-innovation-through-cloud-engineering.md)
  • L1262-1266 in content/blog/infrastructure-as-code-tools/index.md "Atlantis - An open-source tool that provides GitOps-style workflows for Terraform and OpenTofu" → 🚩 flagged (readthrough: orphaned-structure)
  • L1262-1264 in content/blog/infrastructure-as-code-tools/index.md "Spacelift - Spacelift is not an infrastructure as code tool—it's an automation and workflow platform that relies on other IaC tools like Terraform, OpenTofu, Pu" → 🚩 flagged (readthrough: self-redundancy)
  • L70-76 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "For AWS, although the architecture is in spirit very similar, the details differ greatly. We will use Amazon API Gateway and Lambda together to allow our functi" → 🚩 flagged (readthrough: missing-step)
  • L63 in content/blog/announcing-speaker-lineup-pulumiup-2023/index.md "The PulumiUP 2023 talk is titled 'Using Monorepos to Level-up your Infrastructure as Code and Software Delivery'." → ✅ verified (evidence: restored in 1ad9b32; the line now matches the published title on Pulumi's PulumiUP 2023 speaker-lineup page and on the independent Meetup listing for the same session, and is consistent with the sibling talk title earlier in the same post, which was never downcased.; source: https://www.pulumi.com/blog/announcing-speaker-lineup-pulumiup-2023/)
  • L143 in content/blog/platform-engineering-pillars-1/index.md "The linked ebook is titled 'Platform Engineering: Recommended Practices for Infrastructure as Code'." → ✅ verified (evidence: restored in 1ad9b32; the quoted title now matches the published asset at info.pulumi.com/ebook/platform-engineering-iac-recommended-practices, linked from L152 of the same post.; source: repo:content/blog/platform-engineering-pillars-1/index.md (L143, L152))
  • L18 in content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md "Both common-noun occurrences of the phrase in this sentence use the same spelling." → ✅ verified (evidence: 1ad9b32 downcased the second occurrence; the line now reads "…get up and running with infrastructure as code. Everything we show will be done with Pulumi's free and open source infrastructure as code SDK." The capitalized "[Infrastructure as Code in Any Programming Language]" earlier in the line is a post title and correctly untouched.; source: repo:content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md (L18))
  • L86 in content/what-is/python-for-devops.md "Two adjacent internal links in one sentence spell the same phrase both ways." → ⚔️ mismatch (evidence: The revised line reads "see What is infrastructure as code? and Infrastructure as Code for DevOps" — the first link label was downcased and the second, in the same sentence, was not. Unchanged as of 1ad9b32.; source: repo:content/what-is/python-for-devops.md (L86))

  • Refresh this review — comment @claude #update-review. Say what you fixed, or which finding you dispute and why; both work in the same mention.
  • Ask for anything else — comment @claude with no hashtag (questions, one-off fixes). Leaves this review untouched.

Important

Please don't hide, resolve, or delete this comment! It breaks things!

📖 How pre-merge review works — the full lifecycle, short-circuits, and escape hatches.

@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

📊 Editorial balance

Section depth, mention distribution, recommendation steering
  • Section depth: 4 H2 sections (mean 13 lines, median 9.5, std 7.8). No section-depth outliers (≥3× median).
  • Vendor / entity mentions (across the lines this PR changed): Pulumi: 21 · Terraform: 6 · OpenTofu: 3 · CloudFormation: 3 · Spacelift: 2 · Env0: 2 · Vagrant: 2 · Kubernetes: 1 · Terragrunt: 1 · Ansible: 1. The distribution is unchanged from the pre-PR text — no mention was added or removed, only recapitalized — so no steering flag fires.
  • FAQ steering: no FAQ section in the touched content.

🚨 Outstanding in this PR

No outstanding findings.

⚠️ Low-confidence

Review each and resolve as appropriate — these don't block the PR.

  • [L86] content/what-is/python-for-devops.md"Two adjacent internal links in one sentence spell the same phrase both ways." — unchanged by 1ad9b32; the first link label was downcased and the second, four words later, was not:

    For a deeper look at IaC concepts, see What is infrastructure as code? and Infrastructure as Code for DevOps.

    Pick one and apply it to both labels in this sentence. Note that link labels here are being downcased ahead of the target pages' own titles (content/what-is/infrastructure-as-code-for-devops.md still carries title: Infrastructure as Code for DevOps), so if the plan is to leave titles for a later piece of Vale rule: flag mid-sentence "Infrastructure as Code" overcapitalization (IaC sweep) #20958, say so in the PR body — otherwise a reader clicking a lowercase label lands on a capitalized H1.

  • [L24] content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md"Pulumi provides a Migration Hub, located at /migrate/, with user guides that walk through the migration process." — verdict: framing-drift. The post presents /migrate/ as a currently-branded "Migration Hub"; that hub was retired (Remove migration hub #20247) and /migrate/ now 301s to /docs/iac/guides/migration/. The link still resolves, and this sentence sits outside the lines this PR changed, so it isn't a regression from these edits — but since the file is already open, the low-cost fix is to drop the branded noun and point at the live path: "Pulumi's migration guides walk through the process." The phrase does not appear in this post's social.* frontmatter, so nothing auto-posts on merge.

  • [L87] content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md"SST (Serverless Stack) is a framework that aims to bridge the gap between application developers and infrastructure management." — verdict: unverifiable. This is a characterization of a third-party project's goals with no citation behind it; the verification step found no authoritative source stating it in these terms. The sentence is unchanged by this PR (only "Infrastructure as Code" → "infrastructure as code" two lines up moved), so it's carried forward rather than introduced. Author question: is this framing drawn from SST's own docs or announcement? If so, a link would settle it.

  • [L93] content/case-studies/greenpark-sports.md"Jacob said: 'Now, a developer can just call a function, just as they normally would.'" — verdict: unverifiable. The quote appears only in this case study itself, so there's no independent record of it to check against. That's normal for a customer testimonial and not something this PR introduced — the edit on this line was confined to "increased infrastructure as code adoption". Author question: confirm the quote is still attributed as approved by GreenPark; no change needed if so.

  • [L59] content/case-studies/materialize.md"Materialize's GitHub Actions pipeline automates the provisioning and management of Amazon EKS clusters through Pulumi." — verdict: unverifiable. A first-party account of a customer's internal architecture, with this page as its only record. Untouched by this PR (the edit landed on line 57). Author question: no action expected unless Materialize's setup has changed since the study was published.

  • [L55] content/case-studies/snowflake.md"The Snowflake cloud engineering team decided they had to move away from a domain-specific language (DSL) and use a standard programming language to succeed…" — verdict: unverifiable. The same sentence verifies cleanly against the published case study on pulumi.com (see the ✅ entry for L55 in the trail above); this second, paraphrased variant of it just couldn't be matched word-for-word. The line's only change here is "HCL-based infrastructure as code tool". Author question: none — flagged for the record.

Style suggestions

Optional polish from pattern-based linting — never blocking, not counted above. Take the ones that read better and ignore the rest. ✏️ marks one you can apply from the Files changed tab — use Add suggestion to batch on each, then Commit suggestions to take several in a single commit.

content/blog/aws-cdk-vs-pulumi-why-sst-switched/index.md — 1 (1 wordiness)
  • line 85: [style] wordiness — 'witnessed' is too wordy. ✏️
content/blog/infrastructure-as-code-tools/index.md — 1 (1 weasel word)
  • line 1222: [style] weasel word — 'several' is a weasel word!
content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md — 3 (2 wordiness, 1 difficulty qualifier)
  • line 94: [style] wordiness — 'all of' is too wordy. ✏️
  • line 94: [style] difficulty qualifier — Avoid difficulty qualifier 'just' -- it judges difficulty for the reader (brand guide: voice, words and phrases). ✏️
  • line 100: [style] wordiness — 'All of' is too wordy. ✏️
content/what-is/what-is-devops-automation.md — 1 (1 wordiness)
  • line 128: [style] wordiness — 'prioritize' is too wordy.

💡 Pre-existing issues in touched files (optional)

  • [L70] content/whitepapers/enterprise-innovation-through-cloud-engineering.md"Self-hosted Pulumi deployment options include Kubernetes clusters, VMWare vSphere, and virtual private clouds in AWS, Azure, and Google Cloud." — verdict: contradicted. Pre-existing: this PR's edits to this file land on lines 34, 38, and 72; line 70 is untouched. The claim is genuinely out of date — the current self-hosting page (content/docs/administration/self-hosting/_index.md) lists Docker Compose, ECS, EKS, AKS, GKE, Bring Your Own Infrastructure, and Local-Docker, with no vSphere option; the vSphere mention looks like a conflation of "Pulumi can manage vSphere resources" with "Pulumi Cloud can be self-hosted on vSphere". Worth a follow-up issue against the whitepaper rather than folding into a capitalization pass.

  • [L1] content/what-is/python-for-devops.md"There is a page titled 'JavaScript and infrastructure as code' located at /what-is/javascript-and-infrastructure-as-code/." — verdict: mismatch. Pre-existing: the link label and the target page's title have diverged since before this PR — content/what-is/javascript-and-infrastructure-as-code.md carries title: JavaScript and TypeScript Infrastructure as Code, and the label here omitted "TypeScript" in its previous capitalized form too. This PR only changed the label's case (line 201). The label/title divergence is the same coordination gap called out on the L86 bullet above; resolving it belongs with whichever piece of Vale rule: flag mid-sentence "Infrastructure as Code" overcapitalization (IaC sweep) #20958 downcases the what-is page titles.

✅ Resolved since last review

  • [L63] content/blog/announcing-speaker-lineup-pulumiup-2023/index.md — the quoted PulumiUP 2023 talk title is back to its published capitalization ("Using Monorepos to Level-up your Infrastructure as Code and Software Delivery"), with the two trailing spaces that keep it on its own line above Tyler's bio preserved (resolved in 1ad9b32).

  • [L143] content/blog/platform-engineering-pillars-1/index.md — the quoted ebook title is back to "Platform Engineering: Recommended Practices for Infrastructure as Code", matching the asset linked from L152 of the same post (resolved in 1ad9b32).

  • [L18] content/blog/walkthrough-of-adopting-infrastructure-as-code/index.md — the half-converted sentence is consistent again: "free and open source infrastructure as code SDK" (resolved in 1ad9b32).

📜 Review history

  • 2026-08-29T15:05:25Z — Capitalization-only pass over 15 files; two quoted proper titles (a PulumiUP talk, an ebook) were downcased and need restoring, plus two sentences left half-converted. (fd4660d)
  • 2026-09-01T14:44:41Z — re-reviewed after fix push (1 new commit, 1ad9b32): both quoted proper titles restored and the half-converted walkthrough sentence completed; 3 findings resolved and 🚨 Outstanding is now clear. The split spelling on python-for-devops.md L86 is unchanged and stays in ⚠️. Swept both restored titles across body and social.* frontmatter for unflagged duplicates — none found. (1ad9b32)

  • Refresh this review — comment @claude #update-review. Say what you fixed, or which finding you dispute and why; both work in the same mention.
  • Ask for anything else — comment @claude with no hashtag (questions, one-off fixes). Leaves this review untouched.

Important

Please don't hide, resolve, or delete this comment! It breaks things!

📖 How pre-merge review works — the full lifecycle, short-circuits, and escape hatches.

@github-actions github-actions Bot added review:outstanding-issues Claude review completed; outstanding has author-actionable findings and removed review:in-progress Claude review is currently running labels Aug 29, 2026
…un mention

Pre-merge review on this PR flagged two blocking mismatches introduced by the
capitalization downcase: the announcing-speaker-lineup-pulumiup-2023 post quotes
a conference talk title verbatim ('Using Monorepos to Level-up your
Infrastructure as Code and Software Delivery'), and the platform-engineering-pillars-1
post quotes a published ebook title ('Platform Engineering: Recommended Practices
for Infrastructure as Code'). Both are proper names of external assets, not prose
about the practice, so the downcasing rule from issue #20958 doesn't reach them;
restored both to their published capitalization.

Also downcased one remaining common-noun mention the review flagged as
low-confidence: 'free and open source Infrastructure as Code SDK' in the
walkthrough-of-adopting-infrastructure-as-code post, which modifies 'SDK' as an
ordinary noun phrase rather than a product name, consistent with the rest of
that sentence.
@workprentice

workprentice Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

Pushed fixes for both blocking findings:

  • Restored "Infrastructure as Code" capitalization in the quoted conference talk title (announcing-speaker-lineup-pulumiup-2023) — it's the published title of someone else's talk, not prose about the practice.
  • Restored "Infrastructure as Code" capitalization in the quoted ebook title (platform-engineering-pillars-1) — same category, a published asset name.
  • Also downcased the remaining low-confidence common-noun mention flagged in walkthrough-of-adopting-infrastructure-as-code ("free and open source Infrastructure as Code SDK" → "infrastructure as code SDK"), since it modifies "SDK" as an ordinary noun phrase.

Left the other two low-confidence items open for a maintainer call rather than fixing unilaterally:

  • python-for-devops.md L86's two adjacent link labels spelling the phrase both ways — the target pages' own H1 titles (e.g. "Infrastructure as Code for DevOps") haven't been downcased yet, so picking lowercase here would send readers to a capitalized H1. Worth resolving once titles are addressed in a later piece of Vale rule: flag mid-sentence "Infrastructure as Code" overcapitalization (IaC sweep) #20958, or explicitly deferring.
  • The "Migration Hub" framing-drift note on walkthrough-of-adopting-infrastructure-as-code L24 is out of scope for a capitalization-only pass.

@github-actions github-actions Bot added review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention and removed review:outstanding-issues Claude review completed; outstanding has author-actionable findings labels Sep 1, 2026
@workprentice

workprentice Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

@claude #update-review

@github-actions github-actions Bot added review:in-progress Claude review is currently running and removed review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention labels Sep 1, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Optional style suggestions from the pre-merge review — apply or dismiss; none of them block.


Generated by Claude Code

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🤖 Review updated on @workprentice[bot]'s request.

@github-actions github-actions Bot added review:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Sep 1, 2026
@CamSoper
CamSoper requested a review from cnunciato September 3, 2026 23:31
@pulumi pulumi deleted a comment from github-actions Bot Sep 4, 2026
@pulumi pulumi deleted a comment from github-actions Bot Sep 4, 2026
@pulumi pulumi deleted a comment from github-actions Bot Sep 4, 2026
@cnunciato
cnunciato merged commit 42f448a into master Sep 4, 2026
15 checks passed
@cnunciato
cnunciato deleted the fix_issue_20958_iac_overcap_remaining branch September 4, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:blog PR touches blog posts or customer stories domain:docs PR touches technical docs domain:mixed PR touches more than one domain domain:website PR touches marketing, pricing, legal, or competitive landing pages review:no-blockers Claude review completed cleanly; outstanding is empty

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants