Skip to content

Names

llms.txtlists every page for an agent

Pulumi adds a random suffix so a replacement can be created before the old object is deleted. plunge uses <name>-<hash>, a stable name, where the hash is seven hex digits of a SHA-256 over the project, stack, qualified type and name. It is the same across runs and machines and differs between stacks in one account. plunge deletes first on replace (below).

On the aws-ts corpus program, queue events becomes events-76012a7 and topic docs-notify becomes docs-notify-313a6f6. Against stock Pulumi these names are the only preview difference on the AWS and Azure corpus programs.

The cloud refuses a second create of one name, and the loser’s next run binds the winner’s object by its markers. This is C1 in CONCURRENCY.md.

A type is covered when its schema shows the name is unique, it carries markers, and a lister finds it (or its import ID is its name alone):

Family Name evidence
pulumi-aws, pulumi-azure, pulumi-gcp the field the bridge marks autonamed, whose Terraform argument forces a new resource, and which choudoufu’s pkg/identity builds the type’s identity from
aws-native the autoNamingSpec property is in the type’s primaryIdentifier (206 types at v1.83.1)

Kubernetes and azure-native types keep upstream’s naming; plunge reads no autoname schema for them.

A name the program sets, or a pulumi:autonaming pattern without a random part, is used as given. On a covered type a random part (${hex(n)}, ${uuid} and the like) is refused (RandomAutonamePatternError); PLUNGE_ALLOW_RANDOM_AUTONAMES=true keeps it, outside C1.

Old and new objects share the name, so plunge deletes first and warns once per resource where the provider would have created first. The maintainer kept this on #12, accepting a window with neither object.

Each resource record gives its name’s source and whether C1 covers it, or why not (ownership.autoname: by, name, c1, uncovered). CONCURRENCY.md lists every uncovered reason.

Source: pkg/backend/plunge/autoname.go.

Optional: hand this page to your coding agentThe steps work by hand too.
Read https://intentius.io/plunge/how-it-works/names/ and list the resources in this program whose names plunge would choose, and any pulumi:autonaming pattern it would refuse. Change no files.
Never run `plunge up`, `plunge destroy` or `plunge stack adopt --yes`, approve or apply a saved plan, or merge; never edit or remove a plunge-stack or plunge-urn tag or label by hand.

plunge