Skip to content

Add guide for moving resources between stacks - #20519

Open
workprentice[bot] wants to merge 2 commits into
masterfrom
fix_issue_20267_moving_resources_between_stacks
Open

Add guide for moving resources between stacks#20519
workprentice[bot] wants to merge 2 commits into
masterfrom
fix_issue_20267_moving_resources_between_stacks

Conversation

@workprentice

@workprentice workprentice Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

What

There was no dedicated docs page for moving resources between stacks with pulumi state move, even though the command has its own CLI reference page, a blog post, and a tutorial. Readers landing on the CLI reference for pulumi state move had no conceptual guide explaining when to use it, how dependencies are handled, or how to update program code afterward.

This PR adds content/docs/iac/operations/stack-management/moving-resources-between-stacks.md, alongside the other stack-management operations guides (refactoring-with-aliases.md, drift.md, targeted-updates.md, and so on). It covers:

  1. When to reach for state move versus other approaches (aliases, pulumi import).
  2. Identifying a resource's URN and moving a single resource or a subtree.
  3. What happens when a moved resource has dependencies that are not also being moved, and why the destination program needs matching inputs/outputs in that case.
  4. Updating program code on both the source and destination stacks after the state-level move, since state move only rewrites state, not code.
  5. How this relates to the aliases resource option, for readers who land on this page first.

I also cross-linked the new page from three related places: the stack-management index, the existing "Moving resources between stacks" callout in refactoring-with-aliases.md (which already explained the command but had nowhere to send readers for the full walkthrough), and the micro-stacks section of the organizing-projects-stacks guide, where readers are actively deciding whether to split a stack and need to know the split doesn't require destroying resources.

Closes #20267.

Why

The requester noted a blog post and tutorial exist but aren't referenced from the docs proper, other than the bare CLI command page. A CLI reference documents flags, not workflow — readers need a guide that explains the mechanics (URNs, dependency handling, program code updates) in the context of the broader stack-management operations they're already reading about.

How

  • Based the walkthrough on the existing tutorial and blog post's documented command usage and example output, generalizing it into guide form rather than copying the tutorial's AWS-specific walkthrough verbatim.
  • Verified against refactoring-with-aliases.md's existing description of state move to ensure the two pages agree on how URNs and aliases interact, and cross-linked bidirectionally rather than duplicating that explanation.
  • Matched the front matter, menu, and prose conventions of sibling pages in content/docs/iac/operations/stack-management/ (weight placed between using-a-diy-backend.md at 40 and refactoring-with-aliases.md at 50).
  • Confirmed all linked target pages (pulumi_state_move.md, refactoring-with-aliases.md, the URN/aliases concept pages) exist at the paths referenced.

Validation

  • Hand-verified YAML front matter parses, single trailing newline, no trailing whitespace, and balanced shortcodes in all four touched files (make lint/Hugo build tooling isn't available in this environment).
  • Confirmed the new page and all cross-links resolve to real files in the repository.

🧠 This PR was created by workprentice, the automation identity behind Pulumi's Docs Groundskeeper agent, running an autonomous scheduled backlog-burndown task. No specific human requester triggered this run — the agent selected this issue from the open docs backlog and fixed it directly.

Adds a dedicated operations guide for the pulumi state move command,
covering identifying resource URNs, moving resources with and without
dependencies, updating program code on both stacks, and the relationship
to the aliases resource option.

Cross-links the new page from the stack-management index, the
refactoring-with-aliases guide's existing mention of state move, and the
organizing-projects-stacks guide's micro-stacks section.

Fixes #20267
@github-actions github-actions Bot added review:triaging Claude Triage is currently classifying the PR domain:docs PR touches technical docs review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Jul 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-07-25T03:52:29Z

Tip

Summary: This PR adds a new docs page, "Moving resources between stacks," under content/docs/iac/operations/stack-management/, documenting how to use pulumi state move to transfer resources between stacks and then update program code on both sides; it parallels sibling pages like "Refactoring with aliases" and "Using a DIY backend," and wires in a menu entry plus two cross-links (from "Organizing projects & stacks" and "Refactoring with aliases"). The kind of wrongness that would block a reader here is a broken pulumi state move invocation (wrong flags/syntax), a dead internal link, or incorrect guidance about updating program code and aliases after a move — any of which would leave a reader unable to complete a stack move cleanly. Checked: claim verification (42 claims, 39 verified), a cross-sibling read of the stack-management section (menu ordering + reciprocal links), a frontmatter sweep, code-examples checks, and style lint.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts MEDIUM 2 unverifiable (both corroborated by verified sibling claims); the lone contradiction was a spurious check against the page this PR creates
coherence HIGH
cross-sibling consistency MEDIUM read 4 of 10 siblings; menu weight (45) and reciprocal links consistent
code correctness HIGH bash command examples only; code-examples checks ran, 0 findings
Investigation log
  • Cross-sibling reads: 4 of 10 siblings
  • External claim verification: 39 of 42 claims verified (2 unverifiable, 1 contradicted) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 41 Pass 1, 0 Pass 2, 1 Pass 3 (verified 1, contradicted 0, unverifiable 0).
  • Cited-claim spot-checks: not run (no cited claims)
  • Frontmatter sweep: ran on body + meta_desc
  • Temporal-trigger sweep: ran (recency words present in diff; spot-check in-review)
  • Code execution: not run (no static/programs/ change)
  • Code-examples checks: ran (3 specialists: structural, existence, body-code-coverage); 0 findings
  • Editorial-balance pass: not run (not under content/blog/)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
0 4 0 0

🔍 Verification trail

42 claims extracted · 39 verified · 2 unverifiable · 1 contradicted
  • L513 in content/docs/iac/guides/basics/organizing-projects-stacks/_index.md "The Pulumi docs page at /docs/iac/operations/stack-management/moving-resources-between-stacks/ exists and describes how to transfer resources into new stacks i…" → ❌ contradicted (evidence: Directory listing of pulumi/docs content/docs/iac/operations/stack-management/ shows only: _index.md, drift.md, editing-state-files.md, protecting-against-undesired-changes.md, refactoring-with-aliases.md, restoring-deleted-stacks.md, run-…; source: gh api repos/pulumi/docs/contents/content/docs/iac/operations/stack-management)
  • L14 in content/docs/iac/operations/stack-management/_index.md "This documentation section covers scoping updates to specific resources, previewing changes before they apply, safely editing state when recovery is needed, an…" → ✅ verified (evidence: The page's own intro text reads: "These pages cover the day-to-day operations of running Pulumi stacks: scoping updates to specific resources, previewing changes before they apply, safely editing state when recovery is needed, and configur…; source: repo:content/docs/iac/operations/stack-management/_index.md)
  • L18 in content/docs/iac/operations/stack-management/_index.md "Pulumi supports protecting critical resources from deletion." → ✅ verified (evidence: Pulumi's resource options include a protect flag that prevents a resource from being deleted, and the local docs page explicitly lists this under stack-management sub-pages: "Production hygiene: protect critical resources from deletion,…; source: repo:content/docs/iac/operations/stack-management/_index.md (L18))
  • L18 in content/docs/iac/operations/stack-management/_index.md "Pulumi supports reviewing previews before applying changes." → ✅ verified (evidence: The index page itself states: "Protecting against undesired changes ... review previews before applying" and "Update plans ... Preview and review infrastructure changes before applying them" — reflecting the well-established `pulumi previe…; source: repo:content/docs/iac/operations/stack-management/_index.md)
  • L18 in content/docs/iac/operations/stack-management/_index.md "Pulumi supports enforcing guardrails with update plans, policy, and CI/CD gating." → 🤷 unverifiable (evidence: verification did not converge within 8 turns)
  • L20 in content/docs/iac/operations/stack-management/_index.md "Pulumi supports limiting which resources it operates on via the --target, --exclude, and --target-replace flags." → ✅ verified (evidence: The parent index page itself states this summary, linking to a child page 'Targeted updates' that says: 'Limit which resources Pulumi operates on with --target, --exclude, and --target-replace.' These are well-established Pulumi CLI…; source: repo:content/docs/iac/operations/stack-management/_index.md)
  • L22 in content/docs/iac/operations/stack-management/_index.md "Pulumi provides a --run-program flag/option to execute your Pulumi program before refresh or destroy." → ✅ verified (evidence: The linked sibling page run-program.md states: "The --run-program flag opts in to running your program first... --run-program is accepted by pulumi refresh, pulumi destroy, and by pulumi up and pulumi preview when they perform…; source: repo:content/docs/iac/operations/stack-management/run-program.md)
  • L24 in content/docs/iac/operations/stack-management/_index.md "Update plans allow users to preview and review infrastructure changes before applying them." → 🤝 matches (evidence: The claim text is a near-verbatim restatement of the sibling summary line in the same file: "Update plans - Preview and review infrastructure changes before applying them. Update plans help you catch unintended modifications and coordinate…; source: repo:content/docs/iac/operations/stack-management/_index.md L24)
  • L26 in content/docs/iac/operations/stack-management/_index.md "Pulumi can detect when cloud resources diverge from the Pulumi program (drift detection)." → ✅ verified (evidence: The linked sibling page content/docs/iac/operations/stack-management/drift.md has meta_desc "Detect when cloud resources diverge from your Pulumi program, then remediate (re-apply code) or adopt (accept reality into state and the program)"…; source: gh api repos/pulumi/docs/contents/content/docs/iac/operations/stack-management/drift.md)
  • L26 in content/docs/iac/operations/stack-management/_index.md "Pulumi allows users to adopt drift by accepting reality into the program." → ✅ verified (evidence: Line 26 of the same file states: "Detect when your cloud resources diverge from your Pulumi program, then choose to remediate (re-apply code) or adopt (accept reality into the program)" — directly supporting the claim that Pulumi allows ad…; source: repo:content/docs/iac/operations/stack-management/_index.md)
  • L28 in content/docs/iac/operations/stack-management/_index.md "Pulumi provides safe techniques for modifying Pulumi state when normal operations can't recover." → 🤝 matches (evidence: The page itself states in its "Pages" list: "Editing state files ... Safe techniques for modifying Pulumi state when normal operations can't recover. Use sparingly and always back up state first." — the claim is a direct paraphrase of this…; source: repo:content/docs/iac/operations/stack-management/_index.md)
  • L30 in content/docs/iac/operations/stack-management/_index.md "A deleted Pulumi stack can be recovered from the Pulumi Cloud console, including after an accidental pulumi stack rm --force." → 🤝 matches (evidence: The index page's own summary line reads verbatim: "Recover a recently deleted stack from the Pulumi Cloud console, including after an accidental pulumi stack rm --force." This is consistent with (and directly sourced from) the linked chi…; source: repo:content/docs/iac/operations/stack-management/_index.md)
  • L32 in content/docs/iac/operations/stack-management/_index.md "A self-managed (DIY) state backend can be configured using AWS S3, Azure Blob Storage, Google Cloud Storage, PostgreSQL, or the local filesystem." → 🤝 matches (evidence: Sibling page content/docs/iac/concepts/state-and-backends.md states: "DIY backend: a "Do It Yourself" backend that stores state in an object store you manage—AWS S3, Azure Blob Storage, Google Cloud Storage, an S3-compatible server such…; source: repo:content/docs/iac/concepts/state-and-backends.md)
  • L34 in content/docs/iac/operations/stack-management/_index.md "After using pulumi state move to transfer resources between stacks, program code on both sides must be updated to match." → ✅ verified (evidence: The CLI reference confirms pulumi state move "can be used to move resources from one stack to another... when splitting a stack into multiple stacks or when merging multiple stacks into one," and the sibling summary line in the same file…; source: content/docs/iac/cli/commands/pulumi_state_move.md; content/docs/iac/operations/stack-management/_index.md L34)
  • L35-36 in content/docs/iac/operations/stack-management/_index.md "The aliases resource option can be used to change the type of resources without destroying and recreating them." → ✅ verified (evidence: The sibling page link text in the same file states: "Use the aliases resource option to rename, re-parent, change the type, or move resources across stacks without destroying and recreating them" — confirming that changing a resource's t…; source: repo:content/docs/iac/operations/stack-management/_index.md (line 36))
  • L2-3 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "The pulumi state move command transfers resources from one stack to another without destroying and recreating the underlying cloud infrastructure." → ✅ verified (evidence: Auto-generated CLI reference (content/docs/iac/cli/commands/pulumi_state_move.md) confirms: "Move resources from one stack to another... This can be useful when splitting a stack into multiple stacks or when merging multiple stacks into on…; source: repo:content/docs/iac/cli/commands/pulumi_state_move.md)
  • L13 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "Because pulumi state move rewrites state directly, Pulumi treats the moved resources as unchanged rather than deleting them from the source stack and recreat…" → ✅ verified (evidence: The CLI reference page confirms pulumi state move "can be used to move resources from one stack to another" by directly manipulating state, and the source page itself states the same rationale: "by rewriting state directly, so Pulumi tre…; source: repo:content/docs/iac/cli/commands/pulumi_state_move.md and repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md)
  • L16 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "After moving resources with pulumi state move, you still need to add the corresponding resource declarations to the destination stack's program." → ✅ verified (evidence: The same doc states: "pulumi state move only modifies the state files of the source and destination stacks. It does not change your program code. After moving resources you still need to add the corresponding resource declarations to the…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md)
  • L19 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "There is a tutorial called 'Move Resources Between Stacks' at /tutorials/move-resources-between-stacks/ that provisions resources, moves them between two stack…" → ✅ verified (evidence: The tutorial exists at content/tutorials/move-resources-between-stacks/index.md (title "Move Resources Between Stacks", URL /tutorials/move-resources-between-stacks/). It provisions resources ("run the pulumi up command to deploy your re…; source: gh api repos/pulumi/docs/contents/content/tutorials/move-resources-between-stacks/index.md)
  • L23 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "Every resource has a unique URN that encodes its stack, project, type, and name." → ✅ verified (evidence: The names.md doc states: "The URN is automatically constructed from the project name, stack name, resource name, resource type, and the types of all the parent resources" and shows the URN format with stack-name, project-name, resource-typ…; source: repo:content/docs/iac/concepts/resources/names.md)
  • L26-27 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "Running pulumi stack select <STACK> followed by pulumi stack --show-urns lists the URNs in a stack." → ✅ verified (evidence: The auto-generated CLI reference for pulumi stack (sourced from pulumi/pulumi cobra command help) lists the flag: "-u, --show-urns Display each resource's Pulumi-assigned globally unique URN", confirming that selecting a stack and…; source: repo:content/docs/iac/cli/commands/pulumi_stack.md)
  • L30 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "You only need to specify the URNs of top-level resources when moving state, because pulumi state move automatically includes their children." → ✅ verified (evidence: The same doc's worked example confirms this: passing only the parent bucket URN, the command output shows it also plans to move the child BucketObject resource, and the doc states "the command lists every resource it plans to move — includ…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md (lines 49-63))
  • L34-41 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "pulumi state move accepts a --source flag, a --dest flag, and one or more URNs as arguments." → ✅ verified (evidence: The auto-generated CLI reference page (content/docs/iac/cli/commands/pulumi_state_move.md, sourced from pulumi/pulumi's cobra command definitions) shows: pulumi state move <urn>... [flags] with Options --dest string, --source string,…; source: repo:content/docs/iac/cli/commands/pulumi_state_move.md)
  • L45-46 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "When the source and destination stacks for pulumi state move belong to different projects, you must use the fully qualified stack name in the form `/<pr…" → ✅ verified (evidence: (escalated from pass1) Pulumi's official blog and tutorial both confirm this: "When moving resources between stacks across different projects, you will need to use the fully qualified stack name" and "Both dest and source can be either sta…; source: https://www.pulumi.com/tutorials/move-resources-between-stacks/)
  • L47 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "URNs can contain characters that a shell will otherwise interpret, so each URN should be wrapped in single quotes when used with pulumi state move." → ✅ verified (evidence: The doc's own example immediately following this note wraps the URN argument in single quotes: 'urn:pulumi:source::my-project::aws:s3/bucket:Bucket::b', consistent with the claim that URNs should be quoted since they can contain shell-si…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md)
  • L49 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "Before making any changes, pulumi state move lists every resource it plans to move, including child resources of anything named directly, and flags any depen…" → ✅ verified (evidence: The doc's own worked example (same file, lines 51-63) shows pulumi state move printing "Planning to move the following resources from ... to ...:" listing both the named bucket URN and its child BucketObject URN before prompting "Do you…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md (lines 49-64); gh api repos/pulumi/pulumi/contents/pkg/cmd/pulumi/state/state_move.go)
  • L52-64 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "Running pulumi state move --source myorg/my-project/source --dest myorg/my-project/dest 'urn:pulumi:source::my-project::aws:s3/bucket:Bucket::b' produces out…" → ✅ verified (evidence: The pulumi/pulumi source (pkg/cmd/pulumi/state/state_move.go) implements exactly this flow: it builds a resourcesToMove map that auto-includes matched resources and their dependents/children, prints a listing of resources to move, prompts…; source: gh api repos/pulumi/pulumi/contents/pkg/cmd/pulumi/state/state_move.go?ref=3cdff5d9a64294cfab0bbb1231414ac42dbf2552)
  • L66 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "If a moved resource depends on one that is staying in the source stack, that dependency won't be reflected on the destination side after the move." → ✅ verified (evidence: The linked anchor /docs/iac/concepts/stacks/#stackreferences exists in content/docs/iac/concepts/stacks.md and states: "Stack references allow you to access the outputs of one stack from another stack. Inter-stack dependencies allow one…; source: repo:content/docs/iac/concepts/stacks.md)
  • L70 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "After a pulumi state move operation, the destination stack's state describes resources that its program doesn't declare yet." → ✅ verified (evidence: The same doc states: "pulumi state move only modifies the state files of the source and destination stacks. It does not change your program code," and line 70 restates: "pulumi state move changes state, not code. After the move, the de…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md)
  • L72 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "You can consult the CLI output or pulumi stack --show-urns on the destination stack to see the name each moved resource now has." → ✅ verified (evidence: The auto-generated CLI reference page confirms the flag: -u, --show-urns Display each resource's Pulumi-assigned globally unique URN on pulumi stack, matching the claim that running this on the destination stack shows the (new) n…; source: repo:content/docs/iac/cli/commands/pulumi_stack.md)
  • L72 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "You should give a moved resource the same logical name it had in the source stack unless you also intend to rename it." → ✅ verified (evidence: The same doc explicitly states the rationale: "Add a matching resource declaration to the destination stack's program for each moved resource. Give the resource the same logical name it had in the source stack unless you also intend to ren…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md)
  • L74 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "If the destination program declares a moved resource under a different logical name, parent, or project than it had in the source, you should add an alias so P…" → ✅ verified (evidence: The target page /docs/iac/operations/stack-management/refactoring-with-aliases/ documents exactly this: a table lists alias entries for logical name changes ({ name: "old-name" }), parent changes ({ parent: oldParent }), and stack/proj…; source: repo:content/docs/iac/operations/stack-management/refactoring-with-aliases.md)
  • L76 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "Running pulumi preview on both stacks after program changes are in place, with a clean preview showing no unexpected changes, confirms the move succeeded and…" → ✅ verified (evidence: Doc text itself states: "Once the program changes are in place, run pulumi preview on both stacks. A clean preview with no unexpected changes confirms the move succeeded and the program matches the new state." This matches standard `pulu…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md#L76)
  • L80 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "The 'Move Resources Between Stacks' tutorial at /tutorials/move-resources-between-stacks/ covers this workflow end to end, including cross-project moves and re…" → 🤷 unverifiable (evidence: verification did not converge within 8 turns)
  • L81 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "The 'Refactoring with aliases' page at /docs/iac/operations/stack-management/refactoring-with-aliases/ describes using the aliases resource option when a mov…" → ✅ verified (evidence: The page at content/docs/iac/operations/stack-management/refactoring-with-aliases.md exists at that exact URL and states: "The aliases resource option tells Pulumi 'this old URN refers to the same resource as the new one.' With it, you c…; source: repo:content/docs/iac/operations/stack-management/refactoring-with-aliases.md)
  • L82 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "The 'Organizing projects & stacks' page at /docs/iac/guides/basics/organizing-projects-stacks/ covers the tradeoffs behind splitting a monolithic stack into la…" → ✅ verified (evidence: The target page content/docs/iac/guides/basics/organizing-projects-stacks/_index.md exists at the linked path and contains a "Design tradeoffs" section plus "Monolithic", "Layered stacks", and "Micro-stacks" sections describing exactly the…; source: repo:content/docs/iac/guides/basics/organizing-projects-stacks/_index.md)
  • L83 in content/docs/iac/operations/stack-management/moving-resources-between-stacks.md "The 'pulumi state move CLI reference' page contains the full command reference, including flags, for pulumi state move." → ✅ verified (evidence: The page at content/docs/iac/cli/commands/pulumi_state_move.md is auto-generated from the pulumi CLI and lists the full "Options" (--dest, --source, --include-parents, --yes, -h) plus inherited flags for pulumi state move, confirming it…; source: repo:content/docs/iac/cli/commands/pulumi_state_move.md)
  • L496 in content/docs/iac/operations/stack-management/refactoring-with-aliases.md "A stack or project alias entry is still useful when a program embeds the old identifier into a resource name, most commonly via getStack(), because the r…" → ✅ verified (evidence: The doc itself states: "pulumi stack rename changes the stack's name and updates URNs in its state automatically... A stack or project alias entry is still useful here when your program embeds the old identifier into a resource name — mos…; source: repo:content/docs/iac/operations/stack-management/refactoring-with-aliases.md#L496)
  • L496 in content/docs/iac/operations/stack-management/refactoring-with-aliases.md "Renaming a project means editing the name: field in Pulumi.yaml." → ✅ verified (evidence: Pulumi.yaml's top-level name: field is the canonical project identifier used throughout Pulumi's project configuration schema; the doc text itself states "renaming a project means editing name: in Pulumi.yaml" which matches documente…; source: repo:content/docs/iac/operations/stack-management/refactoring-with-aliases.md (L496))
  • L498 in content/docs/iac/operations/stack-management/refactoring-with-aliases.md "A stack and/or project alias should be added on resources in the destination's program when the destination's code declares them with a different identity…" → 🤝 matches (evidence: The claim is a direct restatement of the source page itself (line 498): "Add a stack and/or project alias on those resources in the destination's program when the destination's code declares them with a different identity than the sour…; source: repo:content/docs/iac/operations/stack-management/refactoring-with-aliases.md#L498 and repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md#L74)
  • L498 in content/docs/iac/operations/stack-management/refactoring-with-aliases.md "There exists a page at /docs/iac/operations/stack-management/moving-resources-between-stacks/ titled 'Moving resources between stacks' that documents the full…" → ✅ verified (evidence: The file content/docs/iac/operations/stack-management/moving-resources-between-stacks.md exists with title "Moving resources between stacks" and includes an "Update the destination program" section: "Add a matching resource declaration to…; source: repo:content/docs/iac/operations/stack-management/moving-resources-between-stacks.md)
  • L498 in content/docs/iac/operations/stack-management/refactoring-with-aliases.md "A stack and/or project alias should be added on resources in the destination's program when the destination's code declares them with a different identity…" → ✅ verified (evidence: The claim paraphrases the doc's own text at L498: "Add a stack and/or project alias on those resources in the destination's program when the destination's code declares them with a different identity than the source did, or when you mi…; source: content/docs/iac/operations/stack-management/refactoring-with-aliases.md L498; content/docs/iac/cli/commands/pulumi_state_move.md)

🚨 Outstanding in this PR

No outstanding issues in this PR.

⚠️ Low-confidence

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

  • [L18] content/docs/iac/operations/stack-management/_index.md"Pulumi supports enforcing guardrails with update plans, policy, and CI/CD gating." — verdict: unverifiable; evidence: verification did not converge within 8 turns. This is a pre-existing summary line (not modified by this PR) describing capabilities Pulumi documents elsewhere — update plans, Policy as Code (CrossGuard), and CI/CD gating — so it reads as accurate but the check couldn't settle on a single citation. Not a blocker. Author: if you happen to touch this line, consider pointing the phrase at the relevant reference pages so it's self-cited.

  • [L80] content/docs/iac/operations/stack-management/moving-resources-between-stacks.md"The 'Move Resources Between Stacks' tutorial at /tutorials/move-resources-between-stacks/ covers this workflow end to end, including cross-project moves and re…" — verdict: unverifiable; evidence: verification did not converge within 8 turns. Corroborating context: the same tutorial's existence at that URL — including that it provisions and moves resources between two stacks — was confirmed by a separate check (see the ✅ verified L19 entry above), and its cross-project-move guidance was verified against the tutorial (L45-46). The target and its scope are therefore established. Not a blocker. Author: no action needed unless the tutorial's dependency-resolution coverage has since changed.

Style findings

Found by pattern-based linting; Findings may be false positives.

  • line 13: [style] weasel word — 'several' is a weasel word!
  • line 78: [style] style — Use 'Learn more' instead of 'Related pages' for a cross-reference heading (STYLE-GUIDE.md §Cross-reference sections).

📋 Triaged verifier findings

I double-checked these and realized they weren't real findings — click to expand
  • [L513] content/docs/iac/guides/basics/organizing-projects-stacks/_index.md"The Pulumi docs page at /docs/iac/operations/stack-management/moving-resources-between-stacks/ exists and describes how to transfer resources into new stacks i…" — verdict: contradicted; evidence: Directory listing of pulumi/docs content/docs/iac/operations/stack-management/ shows only: _index.md, drift.md, editing-state-files.md, protecting-against-undesired-changes.md, refactoring-with-aliases.md, restoring-deleted-stacks.md, run-…; source: gh api repos/pulumi/docs/contents/content/docs/iac/operations/stack-management — Spurious: moving-resources-between-stacks.md, the link target, is created by this same PR, so the check ran against the pre-merge repo and couldn't see it. The link resolves once merged.

💡 Pre-existing issues in touched files (optional)

No pre-existing issues in touched files.

✅ Resolved since last review

No items resolved since the last review.

📜 Review history

  • 2026-07-25T03:52:29Z — New pulumi state move guide: claims verify and menu/reciprocal links are consistent; the lone ❌ was a spurious check against the page this PR creates; 2 non-blocking unverifiables + style nags remain, no blockers. (8e942a8)

Need a re-review? Want to dispute a finding? Mention @claude and include #update-review.
(For ad-hoc questions or fixes, just @claude — no hashtag.)

@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 Jul 25, 2026
@pulumi-bot

pulumi-bot commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Drop the vague 'several' quantifier from the intro paragraph and
rename the closing section to 'Learn more' per STYLE-GUIDE.md's
cross-reference heading convention.
@workprentice

workprentice Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

Fixed both style findings from the pre-merge review in 0c4c1f4: dropped the 'several' weasel word from the intro paragraph, and renamed the closing section from "Related pages" to "Learn more" per STYLE-GUIDE.md's cross-reference heading convention. No other outstanding issues from the review.

@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:no-blockers Claude review completed cleanly; outstanding is empty labels Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:docs PR touches technical docs review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add docs for moving resources between stacks

2 participants