Skip to content

Administration: refresh the Accounts concept page - #21113

Open
jkodroff wants to merge 1 commit into
masterfrom
jkodroff/admin-accounts
Open

Administration: refresh the Accounts concept page#21113
jkodroff wants to merge 1 commit into
masterfrom
jkodroff/admin-accounts

Conversation

@jkodroff

Copy link
Copy Markdown
Member

Fixes #21109.

The Accounts page sat in Administration → Concepts without explaining the concept. It opened on a signup click-path, never defined what an account is, never distinguished an account from an organization, and never mentioned the individual organization you get on signup. Its last content change was a one-line addition in March; the MFA and email-verification sections date to 2024.

What changed

content/docs/administration/concepts/accounts.md is rewritten concept-first. Every factual claim was verified against pulumi-service rather than inferred — citations below.

New/rewritten sections

  • What an account is, and how it differs from an organization.
  • Accounts and organizations — explains individual organizations, including that org-managed (SAML/SCIM) users don't get one. This was documented nowhere. Replaces the unintelligible ## Subscription section the issue called out.
  • How accounts are created — signup, invitation, SAML JIT, SCIM, agent accounts. One signup link instead of six per-identity links, and a note that SSO is set up by an org admin.
  • Account identity — username derivation and email.
  • Renaming your account — renames the individual organization with it; affects only stacks in that org; refused mid-update; unavailable to SAML users.
  • Verifying your email address — the issue asked "how or why would an end user do this?" It now says what's actually gated.
  • Deleting your account — moved here from the Organizations page.

Corrections to existing content

Claim Before After
Password rules "at least ten characters" 10–160 chars, can't match username or email
MFA TOTP steps only TOTP + a single rotating recovery code; requires a password, so email/password accounts only
Email verification no reason given lists the gated operations

Removals

  • All four screenshots — stale, and referenced by no other page. Admin concept pages are text-only by convention.
  • The identities shortcode. Its .markdown.md variant rendered only "This content is best viewed on the web", so the provider list was invisible in /llms.txt. It's a plain markdown list now, and the shortcode had no other callers.

Terminology

The product is split three ways — the rename and delete dialogs and the OpenAPI spec say "individual organization"; the settings UI says "personal organization"; the backend says "single-user organization". Docs were split between "individual account", "personal account", and "personal organization". Standardized on individual organization across organizations.md and iac/concepts/pulumi-cloud.md.

Source citations

Claim Source
Password 10–160, ≠ username/email cmd/service/api/validation.go:551-576
MFA is TOTP + one recovery code, rotates after use cmd/service/api/mfa.go:42,61-97,284-287
MFA needs a password SecondFactorEnrollmentHandlerverifyPasswordConfirmation (users.go:1779)
Verified email gates 29 routes EnforceVerifiedUserMiddleware (users.go:2358), routing.go:378
Org-managed users have no individual org isOmu in user-settings.component.ts:921; IsOrgManaged (users.go:913)
SAML sign-in creates an org-managed account newUserAccountFromSAML sets ManagedBy (users.go:1725-1756)
Username derived from email, not chosen email-signup-form.component.ts:308 — "Let the backend derive and deduplicate the login name from the email"
Rename impact + SAML restriction rename-organization.dialog.html:20-39; shouldRenameAccountBeDisabled (account-profile.component.ts:277)
Deletion semantics delete-organization.dialog.html:12-19

Preserved

  • All 10 aliases: — byte-identical.
  • The {#adding-new-identities} anchor, deep-linked from content/docs/ai/neo/code-reviews/_index.md:34.

Verification

make lint passes. Rendered and checked against a local server: title, H1, all four callouts, the pinned anchor, no unrendered shortcodes, no orphaned image references, and the retargeted FAQ link.

Known follow-up, not in this PR

28 tutorial and blog prerequisites link to /docs/pulumi-cloud/accounts#access-tokens. The alias resolves to this page, but that heading moved to /docs/administration/concepts/access-tokens/, so the fragment is dead and readers land mid-page on the wrong topic. Left alone deliberately — happy to fold it in or file it separately.

🤖 Generated with Claude Code

https://claude.ai/code/session_014KGSEaQT4xEHxEsEceKccN

The Accounts page sat in Administration → Concepts without explaining the
concept. It opened on a signup click-path, never defined what an account is,
never distinguished an account from an organization, and never mentioned the
individual organization you get on signup. Its last content change was a
one-line addition in March; the MFA and email-verification sections date to
2024.

Rewrite it concept-first, verified against pulumi-service rather than inferred:

- Define an account, and separate it from an organization.
- Explain individual organizations, including that org-managed (SAML/SCIM)
  users don't get one — documented nowhere previously. Replaces the
  unintelligible "Subscription" section.
- Enumerate how accounts are created: signup, invitation, SAML JIT, SCIM,
  agent accounts. One signup link instead of six per-identity links.
- Document account identity, and renaming (which renames the individual
  organization with it, is refused mid-update, and is unavailable to SAML
  users).
- Give email verification a reason to exist: list what
  EnforceVerifiedUserMiddleware actually gates — MFA enrollment, connecting an
  identity, org invites, org tokens, OIDC issuers, Deployments, agent pools.
- Correct the password rules (10-160 chars, can't match username or email) and
  MFA scope (TOTP plus a single rotating recovery code; requires a password, so
  email/password accounts only).
- Retitle to "Accounts" to match the other Concepts sections.

Remove the four screenshots, which were stale and used by no other page, and
the `identities` shortcode, whose markdown variant rendered only "This content
is best viewed on the web" — so the provider list was invisible in llms.txt.
It's a plain list now.

Adjacent fixes:

- Move "Deleting your account" off the Organizations page and retarget the FAQ
  link to it.
- Standardize on "individual organization" (the term used by the product's
  rename and delete dialogs and the OpenAPI spec) across Organizations and the
  IaC Pulumi Cloud page, which were split between "individual account",
  "personal account", and "personal organization".

Preserves all 10 aliases and the #adding-new-identities anchor that Neo code
reviews deep-links.

Fixes #21109

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014KGSEaQT4xEHxEsEceKccN
@jkodroff
jkodroff marked this pull request as ready for review August 25, 2026 01:46
@github-actions github-actions Bot added review:triaging Claude Triage is currently classifying the PR domain:docs PR touches technical docs domain:mixed PR touches more than one domain domain:infra PR touches workflows, scripts, infra, Makefile, or build config review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Aug 25, 2026

@unblocked unblocked 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.

1 issue found.

About Unblocked

Unblocked has been set up to automatically review your team's pull requests to identify genuine bugs and issues.

📖 Documentation — Learn more in our docs.

💬 Ask questions — Mention @unblocked to request a review or summary, or ask follow-up questions.

👍 Give feedback — React to comments with 👍 or 👎 to help us improve.

⚙️ Customize — Adjust settings in your preferences.

- An email address and password
- Single sign-on through a SAML 2.0 identity provider

SAML single sign-on is configured by an organization admin, not by individual users. If your company uses it, your admin sets up the [SAML integration](/docs/administration/guides/saml/) and tells you which organization name to sign in with. Note that Pulumi supports only one Pulumi Cloud organization per SCIM application, so an admin managing several organizations configures each one separately.

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.

This paragraph is about SAML single sign-on, but the last sentence cites a SCIM-specific limitation ("one Pulumi Cloud organization per SCIM application"). The sso-scim-limits-info shortcode that this sentence paraphrases lives on the SCIM page and is specific to SCIM provisioning — it is not a SAML constraint.

A reader learning about SAML sign-in will be confused by an unexplained jump to SCIM terminology. Either:

  • Replace "SCIM application" with "SAML application" if the same one-org-per-app constraint applies to SAML configurations, or
  • Remove the sentence from this paragraph entirely and leave it to the SCIM page where it already exists.

@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

* Manage your profile settings, including your account password, and subscriptions
* [Add an organization](/docs/administration/concepts/organizations/) backed by Atlassian, GitHub, GitLab, or a SAML 2.0-compatible identity provider, such as Active Directory, Okta, or Google Workspace.
* [Manage your projects and stacks](/docs/iac/concepts/stacks/)
When you sign up for Pulumi Cloud, Pulumi creates an _individual organization_ for you automatically. It is named after your username, and it is the organization your work lands in until you create or join one with other people in it. It appears in the organization menu alongside every collaborative organization you belong to.

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.

[style] wordiness — Drops a repeated 'it is' in a compound predicate

Suggested change
When you sign up for Pulumi Cloud, Pulumi creates an _individual organization_ for you automatically. It is named after your username, and it is the organization your work lands in until you create or join one with other people in it. It appears in the organization menu alongside every collaborative organization you belong to.
When you sign up for Pulumi Cloud, Pulumi creates an _individual organization_ for you automatically. It is named after your username, and is the organization your work lands in until you create or join one with other people in it. It appears in the organization menu alongside every collaborative organization you belong to.

To edit your profile information:
## How accounts are created

An account comes into existence in one of several ways:

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.

[style] weasel word — The list below is complete, so name it

Suggested change
An account comes into existence in one of several ways:
An account comes into existence in one of these ways:

## Switching between organizations

The organization menu displays your individual account and all of the organizations you belong.
The organization menu displays your individual organization and all of the organizations you belong to.

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.

[style] wordiness — 'all of the' reduces to 'all the'

Suggested change
The organization menu displays your individual organization and all of the organizations you belong to.
The organization menu displays your individual organization and all the organizations you belong to.

@github-actions

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-08-25T01:49:55Z

Tip

Summary: This is a near-total rewrite of the Accounts concept page under content/docs/administration/, reframing it around a single idea — an account is a person's identity, an organization is where work lives — and retiring the "personal account" vocabulary in favor of "individual organization" across four pages. It parallels the newer agent-accounts.md in structure and title_tag convention, and it consolidates account deletion here (moved off organizations.md, with the FAQ cross-link repointed). The wrongness that would actually cost a reader here is a wrong spec — a password length bound, an MFA recovery-key behavior, or a list of what a verified email gates — since those are the lines readers act on directly, and several of them are new to this page and can't be confirmed from any public source. The mechanical side is clean: the Hugo build reports no errors or link-integrity breaks, every new cross-page anchor resolves to a real heading, the #adding-new-identities anchor that Neo's docs link to is preserved, and the deleted identities shortcode and four screenshots have no remaining references anywhere in content/. Passes run: full claim extraction and verification, a cross-sibling read of all six administration/concepts/ peers, frontmatter/alias validation, a Hugo build diff, and pattern-based prose linting.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts MEDIUM 14 claims describe Pulumi Cloud backend behavior with no public source; they need an author or product confirmation.
cross-sibling consistency HIGH All six peer pages read; one terminology mismatch found.
Investigation log
  • Cross-sibling reads: 6 of 6 siblings
  • External claim verification: 39 of 67 claims verified (14 unverifiable, 0 contradicted, 1 framing-drift) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 56 Pass 1, 3 Pass 2 (verified 1, contradicted 0, unverifiable 2), 8 Pass 3 (verified 3, contradicted 0, unverifiable 5).
  • Cited-claim spot-checks: 3 of 3 cited claims fetched and compared
  • 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: not run (no fenced code blocks in content files)
  • Editorial-balance pass: not run (not under content/blog/)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
0 9 2 0

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

🔍 Verification trail

67 claims extracted · 39 verified · 14 unverifiable · 0 contradicted · 1 framing-drift
  • L23 in content/docs/administration/concepts/accounts.md "In Pulumi Cloud, an account is the identity a user authenticates with, represents a single person, is unique to that person, and is the entity the CLI…" → ➖ not-a-claim (evidence: The claim is a near-verbatim paraphrase of the file's own defining sentence: "An account is the identity you authenticate with in Pulumi Cloud. It represents a person, it is unique to that person, and it is what the CLI, the console, and…; source: repo:content/docs/administration/concepts/accounts.md)
  • L23 in content/docs/administration/concepts/accounts.md "The Pulumi CLI, the Pulumi console, and the Pulumi REST API all act on a user's behalf as that user's account." → ✅ verified (evidence: The source doc states: "An account is the identity you authenticate with in Pulumi Cloud... it is what the CLI, the console, and the REST API act on your behalf as." This directly supports the claim that CLI, console, and REST API all…; source: repo:content/docs/administration/concepts/accounts.md)
  • L25 in content/docs/administration/concepts/accounts.md "In Pulumi Cloud, stacks, environments, teams, policies, and billing belong to an organization and never to an account directly." → ✅ verified (evidence: The sibling organizations.md page corroborates this: it describes stacks ("All stacks: A searchable list of organization stacks"), policies ("Policies: Lists of organization policies and policy groups"), teams/roles, and billing…; source: content/docs/administration/concepts/organizations.md)
  • L29 in content/docs/administration/concepts/accounts.md "A user's individual organization is the organization their work lands in until they create or join a collaborative organization with other people." → ✅ verified (evidence: The accounts.md doc itself states: "Pulumi creates an individual organization for you automatically... it is the organization your work lands in until you create or join one with other people in it," and this is corroborated by…; source: repo:content/docs/administration/concepts/accounts.md; repo:content/docs/administration/concepts/organizations.md)
  • L31 in content/docs/administration/concepts/accounts.md "A user's individual organization's name is the first segment of any stack the user creates outside a shared organization." → ✅ verified (framing: Source establishes the general organization/project/stack addressing scheme; the claim is the narrower, entailed case where the organization is the user's…; evidence: Pulumi source (pkg/backend/diy/store.go) confirms stacks can be addressed by "fully qualified stack name (organization/project/stack)", and other CLI code/tests use the same organization/project/stack triple consistently. This matches…; source: gh search code --owner pulumi "organization/project/stack" (pulumi/pulumi:pkg/backend/diy/store.go, pkg/cmd/pulumi/project/newcmd/new_test.go))
  • L33 in content/docs/administration/concepts/accounts.md "An individual organization in Pulumi Cloud is always on the Individual edition, and that cannot be changed." → ✅ verified (framing: Pricing page describes Individual Edition's scope/use-case; claim's specific assertion that it "cannot be changed" for an individual organization is a…; evidence: Pricing page confirms "Individual Edition" is a distinct tier for single users ("The Individual Edition is great for single users with private projects... if you are working within a team, you'll typically want to share your projects…; source: content/pricing/_index.md; content/docs/administration/concepts/organizations.md)
  • L36 in content/docs/administration/concepts/accounts.md "Users provisioned and managed by an organization through SCIM or a SAML identity provider do not get an individual organization in Pulumi Cloud." → ✅ verified (evidence: The SCIM guide states "Users become members of your Pulumi organization, able to sign in through your identity provider" — i.e., SCIM/SAML-provisioned users are created directly as members of an admin-managed organization, consistent…; source: content/docs/administration/guides/scim/_index.md; content/docs/administration/concepts/accounts.md)
  • L43 in content/docs/administration/concepts/accounts.md "A person can create their own Pulumi account at app.pulumi.com/signup using any of the identities listed under the Signing in section." → ✅ verified (evidence: The cited URL https://app.pulumi.com/signup returns HTTP 200 and loads the Pulumi Cloud app (a signup page), consistent with the claim that a person can create an account there. The page content is a JS app shell ('Pulumi Cloud') so the…; source: https://app.pulumi.com/signup)
  • L44 in content/docs/administration/concepts/accounts.md "An organization admin can invite a member to a Pulumi Cloud organization by email address or invite link, and the invitee must complete signup themselves…" → ✅ verified (evidence: The organizations doc states: "To invite a new member using their email address, select Invite members. After the new member is invited, they will receive an email allowing them to accept the invite." and "To invite a new member by…; source: repo:content/docs/administration/concepts/organizations.md#inviting-members-to-an-organization)
  • L45-46 in content/docs/administration/concepts/accounts.md "When a Pulumi Cloud organization is backed by SAML SSO, a user who signs in through the identity provider for the first time gets an account created for them…" → 🌀 framing-drift (framing: The claim's source_hint points to the SCIM guide, but the claim text describes SAML SSO provisioning specifically (a distinct mechanism from SCIM); the SAML…; evidence: The SAML guide describes SSO members signing in to their Pulumi account via their identity provider, and the accounts.md page (same repo) documents that a SAML identity provider provisions accounts on first sign-in ("A SAML identity…; source: repo:content/docs/administration/guides/saml/_index.md and repo:content/docs/administration/concepts/accounts.md)
  • L47 in content/docs/administration/concepts/accounts.md "The Pulumi CLI can provision an ephemeral agent account when it detects it is running in an agent context with no credentials." → ✅ verified (evidence: Confirmed by pulumi/pulumi source (sdk/go/common/workspace/creds.go: "Tell the user Pulumi created an ephemeral agent account") and pkg/backend/httpstate/backend.go which creates a new agent account when no usable credentials exist…; source: gh search code --owner pulumi "agent account" (pulumi/pulumi: sdk/go/common/workspace/creds.go, pkg/backend/httpstate/backend.go))
  • L51-54 in content/docs/administration/concepts/accounts.md "Pulumi derives a user's username when their account is created, from their handle at the identity provider they signed up with, or from their email address…" → 🤷 unverifiable (evidence: (escalated from pass1) Public docs confirm that display name, avatar, and email are derived from the identity provider at signup (Pulumi Cloud: Create Accounts), and SCIM FAQ confirms usernames must be unique and are immutable, but no…; source: https://www.pulumi.com/docs/administration/organizations-teams/accounts/ (WebSearch dispatched but verification did not converge within the turn budget))
  • L51-53 in content/docs/administration/concepts/accounts.md "A user's username is the name of their individual organization." → ➖ not-a-claim (evidence: The claim merely restates the document's own internally consistent description of its subject matter ("it is the name of your individual organization" / "It is named after your username") — this is the reviewed file describing its own…; source: repo:content/docs/administration/concepts/accounts.md)
  • L53 in content/docs/administration/concepts/accounts.md "Pulumi adjusts a derived username if that name is already taken." → 🤷 unverifiable (evidence: (escalated from pass1) This claim describes Pulumi's own account-creation/username-derivation behavior, which is product/CLI (backend) logic not resolvable via public web search; it requires checking Pulumi source or internal docs.; source: N/A - requires pulumi/pulumi or pulumi service source inspection (WebSearch dispatched but verification did not converge within the turn budget))
  • L56 in content/docs/administration/concepts/accounts.md "Adding a GitHub identity to a Pulumi Cloud account does not change the user's Pulumi username." → ➖ not-a-claim (evidence: The line is the documentation's own description of Pulumi Cloud's account/identity model ("Your username and email are separate from the identities you use to sign in. Adding a GitHub identity to your account does not change your Pulumi…; source: content/docs/administration/concepts/accounts.md:56)
  • L56 in content/docs/administration/concepts/accounts.md "A user's username and email are separate from the identities the user uses to sign in." → ✅ verified (evidence: The same doc states usernames/emails are derived once at account creation ("Pulumi derives it when your account is created... from your handle at the identity provider... or from your email") and separately that users can add multiple…; source: repo:content/docs/administration/concepts/accounts.md (L49-56, L89-93))
  • L59 in content/docs/administration/concepts/accounts.md "For Pulumi Cloud accounts synchronized by SCIM, the userName attribute is immutable once the account exists, and an identity provider that pushes a changed…" → ✅ verified (evidence: The SCIM guide's "Usernames cannot change" section states verbatim: "A Pulumi username is immutable once the account exists, because it identifies the user across every organization they belong to. If your IdP pushes a changed userName…; source: pulumi/docs:content/docs/administration/guides/scim/_index.md (#usernames-cannot-change))
  • L64 in content/docs/administration/concepts/accounts.md "Renaming a Pulumi Cloud account also renames the user's individual organization, because the two share a name." → 🤷 unverifiable (framing: Cited source is a login page, not documentation of account/org naming behavior; no supporting passage available.; evidence: The cited URL (https://app.pulumi.com/signin) is a sign-in page requiring authentication and returns only a minimal 'Pulumi Cloud' body with no content addressing account/organization renaming behavior. It cannot substantiate or refute…; source: https://app.pulumi.com/signin)
  • L66 in content/docs/administration/concepts/accounts.md "Renaming a Pulumi account affects only the user's individual organization, and stacks in shared organizations the user belongs to are untouched because those…" → ➖ not-a-claim (evidence: The claim is a verbatim restatement of the document's own text: "Renaming affects only your individual organization. Stacks in shared organizations you belong to are untouched, because those organizations have their own names." This is…; source: repo:content/docs/administration/concepts/accounts.md (lines 64-66))
  • L68-70 in content/docs/administration/concepts/accounts.md "Existing pulumi.StackReference references and other references to a stack's fully qualified name do not automatically follow when a Pulumi Cloud account is…" → ✅ verified (evidence: The stacks.md page (target of the /docs/iac/concepts/stacks/#stackreferences anchor) confirms StackReference is constructed from a hardcoded fully qualified name string of the form <organization>/<project>/<stack> (e.g.…; source: content/docs/iac/concepts/stacks.md (#stackreferences section); content/docs/administration/concepts/accounts.md L68)
  • L69-70 in content/docs/administration/concepts/accounts.md "Renaming a Pulumi account involves a few minutes during which updates are not allowed." → 🤷 unverifiable (evidence: (escalated from pass3) The claim describes internal Pulumi Cloud backend behavior (rename propagation timing) that isn't documented in any public pulumi/* repo I could search; the docs page itself is the only source asserting the "few…; source: gh search code --owner pulumi (no backend source found describing rename propagation timing))
  • L72 in content/docs/administration/concepts/accounts.md "Renaming a Pulumi Cloud account does not affect any cloud resources the user has provisioned." → ✅ verified (evidence: The doc explains renaming an account only renames the individual organization (a naming/addressing change for stacks), and separately requires no in-progress updates during rename — consistent with renaming being purely a…; source: repo:content/docs/administration/concepts/accounts.md (L66-72))
  • L74 in content/docs/administration/concepts/accounts.md "Renaming is unavailable to Pulumi Cloud users whose accounts are managed by a SAML identity provider, because their name comes from the identity provider." → ✅ verified (framing: Source states broadly that display name comes from the identity provider used at signup (covers Atlassian, GitHub, GitLab, SAML); claim narrows this to the…; evidence: (escalated from pass1) Pulumi's own docs state: "Your account display name, avatar URL, and email address are obtained from the identity provider you used when signing up," which for SAML-backed accounts means the name is sourced from…; source: https://www.pulumi.com/docs/administration/organizations-teams/accounts/)
  • L78-85 in content/docs/administration/concepts/accounts.md "A user can sign in to Pulumi Cloud with GitHub, GitLab, Google, Atlassian, an email address and password, or single sign-on through a SAML 2.0 identity…" → ✅ verified (evidence: The site's shared identities.html shortcode (used across docs pages) renders exactly these sign-in options: Atlassian (id.atlassian.com/login), GitHub (github.com/login), GitLab (gitlab.com/users/sign_in), Google (accounts.google.com)…; source: gh api repos/pulumi/docs/contents/layouts/shortcodes/identities.html; pulumi/docs:content/blog/announcing-support-for-email-based-identities/index.md)
  • L87 in content/docs/administration/concepts/accounts.md "SAML single sign-on for Pulumi Cloud is configured by an organization admin, not by individual users." → ✅ verified (evidence: The linked SAML guide (content/docs/administration/guides/saml/_index.md) describes SAML SSO setup as an IdP/admin configuration task ("configure your self-hosted infrastructure for SAML SSO", integration guides for admins to configure…; source: repo:content/docs/administration/guides/saml/_index.md)
  • L89 in content/docs/administration/concepts/accounts.md "### Adding new identities {#adding-new-identities}" → ➖ not-a-claim (evidence: This is a markdown section heading with an anchor ID, not a falsifiable temporal assertion; "new" here describes a UI/documentation concept, not a claim about recency or dates.; source: repo:content/docs/administration/concepts/accounts.md)
  • L91 in content/docs/administration/concepts/accounts.md "A user can associate their Pulumi account with more than one identity, connecting GitHub, GitLab, Google, Atlassian, and SAML SSO identities in addition to…" → ✅ verified (evidence: Multiple independent Pulumi sources confirm the same identity-provider set: the Google sign-in announcement blog states "Sign in, sign up, or link your Google account alongside GitHub, GitLab, and Atlassian," and agent-accounts.md lists…; source: pulumi/docs:content/blog/pulumi-cloud-now-supports-google-sign-in/index.md; pulumi/docs:content/docs/administration/concepts/agent-accounts.md)
  • L93 in content/docs/administration/concepts/accounts.md "Connecting an additional identity to a Pulumi account is what lets a user join organizations backed by that identity system." → ➖ not-a-claim (evidence: The claim is a direct paraphrase of the doc's own text: "Connecting an additional identity is what lets you join organizations backed by that system." This is the reviewed file describing its own product behavior/design, not an…; source: repo:content/docs/administration/concepts/accounts.md (L93))
  • L93 in content/docs/administration/concepts/accounts.md "To be invited to a Pulumi Cloud organization, a user's account must be linked to the organization's backing identity provider before the user appears in the…" → 🤝 matches (evidence: Sibling page organizations.md states the same behavior: "To become a member of a Pulumi organization... you also need to be a member of the third-party organization or group backing the Pulumi organization," e.g. "you must associate a…; source: content/docs/administration/concepts/organizations.md)
  • L93 in content/docs/administration/concepts/accounts.md "Only organization admins can add members to a Pulumi organization." → 🤝 matches (evidence: Sibling page organizations.md states "Pulumi organization administrators can invite new members to an organization" and "you must be invited by an existing Pulumi organization administrator," consistent with the claim that only…; source: content/docs/administration/concepts/organizations.md (Inviting members to an organization / Joining an organization sections))
  • L97-99 in content/docs/administration/concepts/accounts.md "To connect an identity in Pulumi Cloud, a user selects their account avatar, navigates to Account settings, and selects the provider under the identity…" → ➖ not-a-claim (evidence: The claim is a prose paraphrase of the same document's own numbered steps: "1. Select your account avatar in the top right corner. 1. Navigate to Account settings. 1. Under the identity providers section, select the provider you want to…; source: repo:content/docs/administration/concepts/accounts.md L95-99)
  • L102 in content/docs/administration/concepts/accounts.md "If a user already has a Pulumi Cloud account and tries to sign in to a SAML-backed organization directly, they may hit an 'Email already in use' error that…" → ✅ verified (evidence: The linked target section "Connect SAML SSO to an existing account" in content/docs/administration/guides/saml/_index.md states: "Signing in directly can produce an 'Email already in use' error when your email already belongs to an…; source: repo:content/docs/administration/guides/saml/_index.md (section "Connect SAML SSO to an existing account"))
  • L107-116 in content/docs/administration/concepts/accounts.md "Until a Pulumi Cloud user's email address is verified, Pulumi Cloud refuses to let them enroll in multi-factor authentication, connect an additional…" → ➖ not-a-claim (evidence: The claim is a paraphrase of the reviewed file's own list (lines 107-116) of actions blocked pending email verification; the cited link (/docs/administration/guides/oidc-issuers/) is just the hyperlink target for the 'OIDC issuers'…; source: content/docs/administration/concepts/accounts.md)
  • L109-115 in content/docs/administration/concepts/accounts.md "Until a Pulumi Cloud user's email address is verified, Pulumi Cloud refuses to let them connect an additional identity to their account." → 🤷 unverifiable (evidence: (escalated from pass1) Searched Pulumi Cloud docs on connecting additional identities and account creation; found general descriptions of how to connect identities but no mention of an email-verification gate/requirement blocking the…; source: WebSearch ran query "Pulumi Cloud email verification required to connect additional identity account"; top results didn't address the claim)
  • L109-115 in content/docs/administration/concepts/accounts.md "Until a Pulumi Cloud user's email address is verified, Pulumi Cloud refuses to let them create agent pools, or run Neo agent tasks and automations." → 🤷 unverifiable (evidence: The claim describes Pulumi Cloud's own backend authorization logic (a SaaS restriction tied to email verification for agent pools and Neo agent tasks). This is internal product behavior not exposed in any public repo or API I can query…; source: content/docs/administration/concepts/accounts.md (self); no independent product source found via gh search)
  • L119-121 in content/docs/administration/concepts/accounts.md "To resend a verification email in Pulumi Cloud, a user selects their account avatar, navigates to Account settings, and selects the option under their email…" → ✅ verified (evidence: (escalated from pass1) Official Pulumi docs state: "Navigate to Account settings. Under your email address, you will see the option to resend the verification email," matching the claim's description of the avatar → Account settings →…; source: https://www.pulumi.com/docs/administration/organizations-teams/accounts/)
  • L134-138 in content/docs/administration/concepts/accounts.md "To reset a password in Pulumi Cloud, a user selects their account avatar, navigates to Password reset, and enters a new password." → ➖ not-a-claim (evidence: The claim is a direct restatement of the file's own documented steps: "1. Select your account avatar in the top right corner. 1. Navigate to Password reset. 1. Enter a new password." This is the PR author's own product documentation…; source: repo:content/docs/administration/concepts/accounts.md (L134-138))
  • L134 in content/docs/administration/concepts/accounts.md "If a user signed up with an email address, they can change their password." → ✅ verified (evidence: The doc states verbatim: "If you signed up with an email address, you can change your password:" followed by steps to reset it via account avatar > Password reset. This is consistent with the sign-in methods list (email+password is one…; source: repo:content/docs/administration/concepts/accounts.md (L132-138))
  • L140 in content/docs/administration/concepts/accounts.md "A Pulumi Cloud password must be between 10 and 160 characters, and cannot be the same as the user's username or email address." → 🤷 unverifiable (evidence: (escalated from pass1) The official Pulumi docs page on accounts states only that "Your password must be at least ten characters long" — it does not mention any 160-character maximum or a rule against reusing the username/email as…; source: https://www.pulumi.com/docs/administration/organizations-teams/accounts/; intuition: The specific max of "160 characters" and the username/email exclusion rule are oddly precise details not found on the… (WebSearch dispatched but verification did not converge within the turn budget))
  • L144 in content/docs/administration/concepts/accounts.md "MFA enrollment for a Pulumi Cloud account requires confirming the account's password, so it is available only to accounts that have one." → ✅ verified (evidence: The same doc section states verbatim: "MFA enrollment requires confirming your password, so it is available only to accounts that have one — if you sign in exclusively through GitHub, GitLab, Google, Atlassian, or SAML SSO, enforce…; source: repo:content/docs/administration/concepts/accounts.md)
  • L144 in content/docs/administration/concepts/accounts.md "If a user signed up with an email address, they can protect their account with multi-factor authentication using time-based one-time passwords (TOTP)." → ✅ verified (evidence: (escalated from pass1) Pulumi's own docs state: "For users who signed up with email, you can enable multi-factor authentication (MFA) using one-time passwords" and instruct users to "Download a TOTP authenticator app," matching the claim…; source: https://www.pulumi.com/docs/administration/organizations-teams/accounts/)
  • L144 in content/docs/administration/concepts/accounts.md "Users who sign in exclusively through GitHub, GitLab, Google, Atlassian, or SAML SSO must enforce multi-factor authentication with that provider instead of…" → ➖ not-a-claim (evidence: The claim is a verbatim paraphrase of the file's own text at line 144: "MFA enrollment requires confirming your password, so it is available only to accounts that have one — if you sign in exclusively through GitHub, GitLab, Google…; source: repo:content/docs/administration/concepts/accounts.md)
  • L147-153 in content/docs/administration/concepts/accounts.md "To enroll in MFA in Pulumi Cloud, a user selects their account avatar, navigates to Account settings, scrolls to the MFA section, selects Enroll, scans a QR…" → ➖ not-a-claim (evidence: The claim is a faithful summary of the numbered steps already given in the same file (lines 147-153): "Select your account avatar... Navigate to Account settings... Scroll to the MFA section and select Enroll... Scan the QR code... Enter…; source: repo:content/docs/administration/concepts/accounts.md)
  • L153 in content/docs/administration/concepts/accounts.md "A user should store the MFA recovery key somewhere safe as a backup if they lose access to their authenticator app." → ➖ not-a-claim (evidence: The claim paraphrases the document's own instructional text at line 153: "Store the recovery key somewhere safe. It is your backup if you lose access to your authenticator app." This is the author's own product documentation instruction…; source: repo:content/docs/administration/concepts/accounts.md)
  • L155 in content/docs/administration/concepts/accounts.md "A Pulumi Cloud MFA recovery key works once, and after it is used to sign in, Pulumi issues a new recovery key." → 🤷 unverifiable (evidence: (escalated from pass1) Pulumi's docs page on accounts describes the recovery key only as: "Copy the recovery key and store it in a secure location. This is used as a backup login method if you lose access to your authenticator app." It…; source: https://www.pulumi.com/docs/administration/organizations-teams/accounts/; intuition: This describes precise product behavior (one-time-use recovery key + auto-reissue) that only Pulumi's own… (WebSearch dispatched but verification did not converge within the turn budget))
  • L158 in content/docs/administration/concepts/accounts.md "To disable multi-factor authentication in Pulumi Cloud, a user selects Reset authentication method in the MFA section of their account settings." → ✅ verified (evidence: The docs repo contains matching text describing this exact UI flow: "You can un-enroll by clicking on the Reset authentication method button, and second-factor authentication will be disabled for your account." This corroborates the…; source: gh search code --owner pulumi "Reset authentication method" -> pulumi/docs:content/docs/administration/concepts/accounts.md)
  • L163 in content/docs/administration/concepts/accounts.md "A user can delete their account from their account settings in Pulumi Cloud." → 🤷 unverifiable (evidence: The cited URL is a sign-in page requiring authentication; the pre-fetched body only returns 'Pulumi Cloud' with no content about account deletion settings, so the claim cannot be verified against this source.; source: https://app.pulumi.com/signin)
  • L165 in content/docs/administration/concepts/accounts.md "Deleting a Pulumi Cloud account removes the user's access to every organization they belong to and deletes their individual organization along with all of…" → ✅ verified (evidence: The doc text at L165 verbatim: "Deleting your account removes your access to every organization you belong to, and deletes your individual organization along with all of its stacks." This matches the claim. The Pulumi Cloud SDK…; source: repo:content/docs/administration/concepts/accounts.md#L165; pulumi/pulumi-cloud-sdk:dotnet/Models/AgentAccountSummary.cs)
  • L167 in content/docs/administration/concepts/accounts.md "Before deleting a Pulumi account, a user should transfer any stacks they want to keep to another organization and make sure they are not the last admin of an…" → ➖ not-a-claim (evidence: The claim is a direct paraphrase of the doc's own guidance at line 167: "Before deleting your account, transfer any stacks you want to keep to another organization, and make sure you are not the last admin of an organization that still…; source: repo:content/docs/administration/concepts/accounts.md)
  • L171-175 in content/docs/administration/concepts/accounts.md "- Agent accounts" → ✅ verified (evidence: The target page content/docs/administration/concepts/agent-accounts.md exists at the linked path /docs/administration/concepts/agent-accounts/ and even reciprocally links back to accounts.md, confirming the "See also" link is a valid…; source: repo:content/docs/administration/concepts/agent-accounts.md)
  • L1 in content/docs/administration/concepts/organizations.md "The 'Deleting your account' section, including the ability to delete a personal Pulumi account from account settings, was removed from this page." → ✅ verified (evidence: GitHub code search over pulumi/docs shows the indexed (pre-PR) version of this exact file still contains a '## Deleting your account' heading and the line "Before deleting your account, make sure you have transferred any stacks you want…; source: gh search code --repo pulumi/docs "Deleting your account" (matched content/docs/administration/concepts/organizations.md); read_file content/docs/administration/concepts/organizations.md)
  • L78 in content/docs/administration/concepts/organizations.md "The organization menu displays your individual organization and all of the organizations you belong to." → 🤷 unverifiable (evidence: This describes a Pulumi Cloud console UI behavior (the organization switcher menu). The doc consistently uses "individual organization" terminology elsewhere (e.g., line 119 "individual organization and a shared organization"), so it's…; source: content/docs/administration/concepts/organizations.md)
  • L119 in content/docs/administration/concepts/organizations.md "Stack admins can transfer stacks one at a time between their individual organization and a shared organization, or between shared organizations." → ✅ verified (evidence: The same doc page states "Stack admins can transfer stacks one at a time between their individual organization and a shared organization, or between shared organizations. Organization admins can transfer stacks in bulk," and this is…; source: repo:content/docs/administration/concepts/rbac/roles.md, repo:content/docs/support/faq/pulumi-cloud.md)
  • L121 in content/docs/administration/concepts/organizations.md "Both permissions required for transferring a stack are configured through the organization's access controls, as described in the Role-based access control…" → ✅ verified (evidence: The organizations.md page itself states: "Transferring a stack requires two permissions: the right to transfer the stack from its current owner, and the right to create stacks in the destination organization. Both are configured through…; source: repo:content/docs/administration/concepts/organizations.md (L121); repo:content/docs/administration/concepts/rbac/_index.md)
  • L121 in content/docs/administration/concepts/organizations.md "Transferring a stack requires two permissions: the right to transfer the stack from its current owner, and the right to create stacks in the destination…" → ✅ verified (evidence: RBAC docs confirm two distinct scopes: stack:transfer ("Transfer ownership of a stack to another organization or user... Granted by default permission set: Stack Admin") governs the source side, and stack:create ("members whose role…; source: pulumi/docs:content/docs/administration/reference/rbac-scopes/stacks.md; pulumi/docs:content/docs/administration/concepts/rbac/roles.md)
  • L127 in content/docs/administration/concepts/organizations.md "When transferring a stack via the Settings UI, the user must provide the destination organization name and select Transfer (personal accounts are no longer a…" → 🤷 unverifiable (evidence: The doc's actual instruction (line 127) reads only "Provide the destination organization name and select Transfer." — it says nothing about personal accounts being disallowed as a destination. No other reference to "personal" account…; source: repo:content/docs/administration/concepts/organizations.md (line 127); intuition: The parenthetical about personal accounts is an added assertion not present in the cited doc line itself — smells…)
  • L159 in content/docs/administration/concepts/organizations.md "Before deleting an organization, you must transfer any stacks you want to keep to another organization (transferring to an individual account is no longer…" → 🤷 unverifiable (framing: Source only instructs transferring stacks to "another organization" before deletion; the claim adds a specific historical/behavioral assertion…; evidence: The source line only states "Before deleting an organization, make sure you have transferred any stacks you want to keep to another organization." Nothing in this page or the linked FAQ mentions transferring to an individual account ever…; source: repo:content/docs/administration/concepts/organizations.md (L159) and repo:content/docs/support/faq/pulumi-cloud.md; intuition: The parenthetical reads like speculative commentary added by the claim extractor rather than something stated in the…)
  • L161 in content/docs/administration/concepts/organizations.md "Additional information on deleting a Pulumi organization is available at /docs/support/faq/pulumi-cloud/#how-can-i-delete-a-pulumi-organization." → ✅ verified (evidence: The file content/docs/support/faq/pulumi-cloud.md contains a heading "### How can I delete a Pulumi organization?" which generates the anchor #how-can-i-delete-a-pulumi-organization referenced by the claim, and the organizations.md…; source: gh search code --repo pulumi/docs "how can I delete a Pulumi organization"; repo:content/docs/support/faq/pulumi-cloud.md)
  • L181 in content/docs/administration/concepts/organizations.md "Only organization admins can change the organization identity provider." → 🤝 matches (evidence: Sibling docs use the identical convention for admin-gated settings: roles.md states "Only organization admins can change these settings" for org-wide role settings, and github-app.md states "Only organization admins can change this…; source: repo:content/docs/administration/concepts/rbac/roles.md, repo:content/docs/integrations/version-control/github-app.md)
  • L183 in content/docs/administration/concepts/organizations.md "Organization members must first add the new identity provider to their own accounts before changing the organization identity provider, or members will be…" → 🤷 unverifiable (evidence: This exact operational warning already exists verbatim (with "individual" vs "own" accounts) elsewhere in the same doc file in the pulumi/docs repo, indicating it's pre-existing, stable guidance rather than a new unverified claim. It…; source: gh search code --owner pulumi "locked out of the organization" (pulumi/docs:content/docs/administration/concepts/organizations.md))
  • L193 in content/docs/administration/concepts/organizations.md "In order to disconnect an identity provider, a user needs to select another identity provider, and this is also true for SAML SSO." → 🤷 unverifiable (evidence: The claim is a verbatim restatement of the doc's own text: "In order to disconnect an identity provider you need to select another identity provider. This is also true for SAML SSO." This is a description of Pulumi Cloud's admin UI…; source: repo:content/docs/administration/concepts/organizations.md)
  • L195 in content/docs/administration/concepts/organizations.md "Organization members must first add the new identity provider to their own accounts before changing the organization identity provider, or members will be…" → ✅ verified (evidence: The exact sentence "Organization members must first add the new identity provider to their individual accounts before changing the organization identity provider, or members will be locked out of the organization" already exists in the…; source: gh search code --owner pulumi "locked out of the organization" (pulumi/docs:content/docs/administration/concepts/organizations.md))
  • L34 in content/docs/iac/concepts/pulumi-cloud.md "The organization name is the first segment of a stack's fully qualified name, in the form <organization>/<project>/<stack>." → ✅ verified (evidence: Pulumi's fully qualified stack name format is <organization>/<project>/<stack>, consistent with CLI commands like pulumi stack select org/project/stack and pulumi stack init. The doc's own text states: "The organization name is…; source: repo:content/docs/iac/concepts/pulumi-cloud.md (L34); consistent with Pulumi CLI stack naming convention org/project/stack)
  • L34 in content/docs/iac/concepts/pulumi-cloud.md "Teams, role-based access control, billing, and shared Pulumi ESC environments all belong to an organization in Pulumi Cloud." → ✅ verified (evidence: The same document states: "It is the primary unit of collaboration: teams and role-based access control, billing, and shared Pulumi ESC environments all belong to an organization." This matches Pulumi's documented organization model…; source: content/docs/iac/concepts/pulumi-cloud.md:L34)
  • L34 in content/docs/iac/concepts/pulumi-cloud.md "Teams and role-based access control belong to an organization in Pulumi Cloud." → ✅ verified (evidence: Line 34 of the same doc states: "It is the primary unit of collaboration: teams and role-based access control, billing, and shared Pulumi ESC environments all belong to an organization." This matches Pulumi Cloud's documented org…; source: repo:content/docs/iac/concepts/pulumi-cloud.md (L34))
  • L36 in content/docs/iac/concepts/pulumi-cloud.md "A Pulumi Cloud user can switch between organizations in the Pulumi Cloud console or with the pulumi org CLI commands." → ✅ verified (evidence: The auto-generated pulumi org CLI reference page (content/docs/iac/cli/commands/pulumi_org.md) lists subcommands including pulumi org set-default ("Set the local default organization for the current backend") and `pulumi org…; source: repo:content/docs/iac/cli/commands/pulumi_org.md)
  • L134 in content/docs/support/faq/pulumi-cloud.md "The 'Deleting your account' section, which provides more information about deleting a Pulumi Cloud account, is located at…" → ✅ verified (evidence: content/docs/administration/concepts/accounts.md contains a heading "## Deleting your account" at that path, matching the linked URL /docs/administration/concepts/accounts/#deleting-your-account exactly.; source: repo:content/docs/administration/concepts/accounts.md)
  • L87 in content/docs/administration/concepts/accounts.md "Pulumi supports only one Pulumi Cloud organization per SCIM application." → 🤷 unverifiable (evidence: Searched the SCIM guide, which is the page that would carry this constraint, and found no statement of a one-organization-per-SCIM-application limit anywhere in it, nor in the SAML guide; the sentence appears only on this page.; source: repo:content/docs/administration/guides/scim/_index.md; repo:content/docs/administration/guides/saml/_index.md)
  • L29 in content/docs/administration/concepts/accounts.md "An individual organization is the automatically created organization named after a user's username." → ⚔️ mismatch (evidence: The sibling page agent-accounts.md L41 uses the retired vocabulary for the same concept — "The provisioned account is a Pulumi Cloud individual account" — where this page's model calls that an account whose individual organization is named after the username.; source: repo:content/docs/administration/concepts/agent-accounts.md)
  • L134 in content/docs/support/faq/pulumi-cloud.md "The FAQ answer this PR repoints still describes the subject as a 'personal account'." → ⚔️ mismatch (evidence: The PR retires "personal account" on accounts.md, organizations.md, and pulumi-cloud.md, but the FAQ answer whose link it updates still reads "You can delete your personal account…" (L130), and an earlier FAQ entry still uses "individual account" as a stack-transfer source (L92-96).; source: repo:content/docs/support/faq/pulumi-cloud.md)

🚨 Outstanding in this PR

No outstanding findings in this PR.

⚠️ Low-confidence

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

  • [L51-54] content/docs/administration/concepts/accounts.md"Pulumi derives it when your account is created — from your handle at the identity provider you signed up with, or from your email address if you signed up with one" — 🤷 unverifiable. This is new text; the page it replaces said only that display name, avatar, and email come from the identity provider, and said nothing about how the username is derived. The derivation rule lives in Pulumi Cloud's backend and isn't documented publicly. Author question: can you confirm the derivation order — specifically, what happens for an email signup whose local part isn't a valid username (dots, plus-addressing, non-ASCII)?

  • [L53] content/docs/administration/concepts/accounts.md"and adjusts it if that name is already taken" — 🤷 unverifiable, same source gap as the line above. Author question: what does the adjustment look like to the user — a numeric suffix Pulumi picks silently, or a prompt? Readers who care about their stack names (the very reason the page raises usernames two paragraphs earlier) will want to know whether they get a say.

  • [L69-70] content/docs/administration/concepts/accounts.md"Expect a few minutes during which updates are not allowed." — 🤷 unverifiable. No public source documents rename-propagation timing, and this is the kind of number a reader plans a maintenance window around. Author question: is "a few minutes" a real observed bound? If it isn't, prefer the honest version, which still tells the reader what to do: "Expect a short period after the rename during which updates are not allowed."

  • [L109-115] content/docs/administration/concepts/accounts.md"Connect an additional identity to your account" (in the list of things an unverified email blocks) — 🤷 unverifiable. A search of the Pulumi Cloud docs on connecting identities turned up the flow but no email-verification gate on it. Worth double-checking, because it interacts badly with the section right above: "Adding new identities" tells a reader that connecting an identity is how they get invited to an organization, with no hint that a verification step comes first. Author question: is the gate real? If it is, a one-line pointer from the "Adding new identities" steps to this section would save a reader a confusing dead end.

  • [L109-115] content/docs/administration/concepts/accounts.md"Create agent pools, or run Neo agent tasks and automations" — 🤷 unverifiable; no public source describes an email-verification gate on agent pools or Neo tasks. Author question: please confirm with the Neo/Deployments owners, since this is the newest item on the list and the most likely to have shifted.

  • [L140] content/docs/administration/concepts/accounts.md"Your password must be between 10 and 160 characters, and it cannot be the same as your username or your email address." — 🤷 unverifiable, and it's a deliberate change: the page this replaces said only "Your password must be at least ten characters long." The published Pulumi docs still say only that, with no upper bound and no username/email exclusion. The lower bound matches; the two new constraints don't have a source. Author question: where did 160 and the username/email rule come from? A reader who trusts a wrong upper bound will pick a password the form then rejects.

  • [L155] content/docs/administration/concepts/accounts.md"Your recovery key works once. After you use it to sign in, Pulumi issues a new one, so store the replacement as well." — 🤷 unverifiable, and also new to this page; the version it replaces described the recovery key only as a backup login method. This is the highest-stakes unverified line on the page: a reader who believes the key is reusable and doesn't save the replacement can lock themselves out for good. Author question: please confirm the one-time-use and reissue behavior.

  • [L78] content/docs/administration/concepts/organizations.md"The organization menu displays your individual organization and all of the organizations you belong to." — 🤷 unverifiable console-UI description (it can't be checked without signing in), flagged only so someone with an account can eyeball it. The grammar fix on this line — the old text ended "organizations you belong," missing the preposition — is a clear improvement either way.

  • [L87] content/docs/administration/concepts/accounts.md"Note that Pulumi supports only one Pulumi Cloud organization per SCIM application, so an admin managing several organizations configures each one separately." — 🤷 unverifiable: neither the SCIM guide nor the SAML guide states a one-organization-per-SCIM-application limit, and this page is the only place the sentence appears. Two separate problems, even if the fact turns out to be right: it's a SCIM constraint sitting in a paragraph about SAML sign-in, and it's addressed to admins in a section written for the person signing in. Suggested fix — drop it from this paragraph, leaving: "SAML single sign-on is configured by an organization admin, not by individual users. If your company uses it, your admin sets up the SAML integration and tells you which organization name to sign in with." If the constraint is real, it belongs in the SCIM guide, where an admin will actually look for it.

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/docs/administration/concepts/accounts.md — 5 (3 wordiness, 2 weasel word)
  • line 29: [style] wordiness — 'It is' is too wordy. ✏️
  • line 29: [style] wordiness — 'it is' is too wordy. ✏️
  • line 31: [style] wordiness — 'therefore' is too wordy.
  • line 41: [style] weasel word — 'several' is a weasel word! ✏️
  • line 87: [style] weasel word — 'several' is a weasel word!
content/docs/administration/concepts/organizations.md — 1 (1 wordiness)
  • line 78: [style] wordiness — 'all of' is too wordy. ✏️

  • 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

Copy link
Copy Markdown
Contributor

📋 Triaged verifier findings

I double-checked these and realized they weren't real findings — click to expand
  • [L45-46] content/docs/administration/concepts/accounts.md"A SAML identity provider provisions them."Spurious: flagged as framing-drift because the check was run against the SCIM guide while the sentence describes SAML provisioning. The SAML guide does support it, and the page keeps SAML and SCIM as separate bullets, which is the correct distinction.

  • [L64] content/docs/administration/concepts/accounts.md"Renaming your account also renames your individual organization, because the two share a name."Mis-sourced: the URL checked was app.pulumi.com/signin, a sign-in screen that returns no documentation content. The page's own model — the individual organization is named after your username — makes this internally consistent.

  • [L163] content/docs/administration/concepts/accounts.md"You can delete your account from your account settings in Pulumi Cloud."Mis-sourced: same sign-in URL, same problem. The statement also matches the FAQ entry this PR repoints at it.

  • [L127] content/docs/administration/concepts/organizations.md"Provide the destination organization name and select Transfer."Spurious: the flagged claim carried a parenthetical about personal accounts no longer being a valid destination that isn't in the line at all. The line as written is simply the shortened step.

  • [L159] content/docs/administration/concepts/organizations.md"Before deleting an organization, make sure you have transferred any stacks you want to keep to another organization."Spurious: same added parenthetical. And the shortened wording is still complete, because an individual organization is an organization under this PR's model.

  • [L183] content/docs/administration/concepts/organizations.md"Organization members must first add the new identity provider to their own accounts…"Spurious: pre-existing guidance, reworded only to free up "individual" for "individual organization". Nothing new to verify.

  • [L193] content/docs/administration/concepts/organizations.md"In order to disconnect an identity provider you need to select another identity provider."Spurious: untouched line, restated verbatim from the page itself.

💡 Pre-existing issues in touched files (optional)

  • [L134] content/docs/support/faq/pulumi-cloud.mdPre-existing: this PR repoints the FAQ's "Deleting your account" link, but the answer it sits in (L130) still opens "You can delete your personal account from your account settings" — the exact phrase the PR retires everywhere else. An earlier entry, "How do I migrate stacks from an individual account to an organization account?" (L92-96), has the same drift. Neither line is in the diff, so this doesn't block; but they're two lines away from a line you're already touching, and leaving them means the vocabulary cleanup is visibly incomplete on the page most likely to be the reader's entry point. Swapping "personal account" → "account" and "individual account" → "individual organization" would finish it.

  • [L29] content/docs/administration/concepts/accounts.mdPre-existing: the sibling page content/docs/administration/concepts/agent-accounts.md (L41) still says "The provisioned account is a Pulumi Cloud individual account", which collides with the model this page establishes at L29 — an account is the person, an individual organization is the auto-created org named after their username. Out of scope for this PR; worth a follow-up so the two concept pages, which now link to each other from the "See also" list, don't teach different vocabularies. All four other administration/concepts/ peers were checked and use no account/organization terminology that conflicts.

✅ Resolved since last review

No items resolved since the last review.

📜 Review history

  • 2026-08-25T01:49:55Z — Mechanically clean (build, anchors, alias and shortcode removals all verified); no blockers. Nine specs and behaviors new to the rewritten page — password bounds, MFA recovery-key reissue, username derivation, the email-verification gate list — have no public source and need author confirmation, and a stray SCIM constraint sits in the SAML sign-in paragraph. (5bc5ff0)

  • 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:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Aug 25, 2026
@pulumi-bot

Copy link
Copy Markdown
Collaborator

@pulumi-bot

Copy link
Copy Markdown
Collaborator

Lighthouse Performance Report

Commit: 5bc5ff0 | Metric definitions

Page Device Score FCP LCP TBT CLS SI
Homepage Mobile 🔴 43 8.8s 17.1s 522ms 0.000 8.8s
Homepage Desktop 🟡 81 1.4s 2.5s 0ms 0.000 1.4s
Install Pulumi Mobile 🟡 59 5.5s 12.9s 143ms 0.054 5.5s
Install Pulumi Desktop 🟢 91 1.0s 1.8s 0ms 0.023 1.0s
AWS Get Started Mobile 🔴 45 5.3s 13.4s 38ms 0.335 5.3s
AWS Get Started Desktop 🟡 85 1.0s 2.4s 0ms 0.072 1.0s

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 domain:infra PR touches workflows, scripts, infra, Makefile, or build config domain:mixed PR touches more than one domain review:no-blockers Claude review completed cleanly; outstanding is empty

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Administration: Refresh the Accounts page

2 participants