Skip to content

Content glow-up: content/docs/iac/languages-sdks/javascript/_index.md - #21552

Merged
CamSoper merged 3 commits into
masterfrom
content-review/glowup-docs-iac-languages-sdks-javascript
Sep 14, 2026
Merged

CamSoper merged 3 commits into
masterfrom
content-review/glowup-docs-iac-languages-sdks-javascript

Conversation

@pulumi-bot

@pulumi-bot pulumi-bot commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Important

Glow-up PR — human review required. Auto-merge is never armed on glow-up PRs and the automated PR-review sweep never approves them; it assigns the reviewers. Adjudicate the Backlog executed / Backlog declined tables below and merge manually.

Why this page

  • Page: content/docs/iac/languages-sdks/javascript/_index.md/docs/iac/languages-sdks/javascript/
  • Lane: glowup
  • Strategic tier: 2 (no_retire: true)
  • Traffic: 3,844 monthly visits (period 2026-03-07 to 2026-09-07; source CLICKSTREAM.FCT_PAGEVIEWS)
  • Last reviewed: 2026-09-10 (attempts: 0)
  • Selection score: 8.6625

This section is composed deterministically from the selection queue; do not edit it.

Backlog executed

Banked finding Source PR What changed
findings-f6Claim (c53, L295): Setting target to ES2022 or later in tsconfig.json enables top-level await. (prior disposition: deferred as judgment-level — the earlier run had the correct technical reading but no unambiguous replacement wording to drop in) (this run: c51 contradicted high at L295) findings record Rewrote the sentence to attribute top-level await to the module setting, with target as the secondary requirement: "That module setting is also what makes top-level await available, as long as target is ES2017 or later". Same correction applied to the matching sentence in the Top-level await section, which repeated the target-only framing. The tsconfig.json examples still show ES2022, which satisfies the ES2017-or-later requirement. See fresh-c51 for the evidence.
fresh-c51Claim (c51, L295): Setting target to ES2022 or later in tsconfig.json enables top-level await. — contradicted (high) (evidence: (escalated from pass1) TypeScript's own tsconfig reference attributes top-level await support to the module setting, not target: "ES2020 adds support for dynamic imports, and import.meta while ES2022 further adds support for top level …) this run Same edit as findings-f6 — this is the fresh verdict on that sentence. .verified-claims.json c51 (contradicted, high, pass3) cites https://www.typescriptlang.org/tsconfig/: top-level await requires module set to one of es2022/esnext/system/node16/node18/node20/nodenext/preserve and target at es2017 or higher — the page attributed it to target alone. The page already instructs module: nodenext two sentences earlier, so the corrected wording is a re-attribution, not new advice.
findings-f10Vale weasel word (L28): 'vast' is a weasel word! (prior disposition: deferred as judgment-level — dropping the adjective needed a rewrite of the bullet, not a substitution) findings record Rewrote the bullet: "Leverage the vast npm package ecosystem in your infrastructure code" → "Use packages from the npm registry directly in your infrastructure code". Drops both the weasel word and "Leverage".
findings-f11Vale heading capitalization (L34): Heading 'Node.js Runtime' should use sentence case (capitalize only the first word and proper nouns). (prior disposition: deferred as judgment-level — heading renames carry an anchor-stability question the fix lane would not decide) findings record ### Node.js Runtime### Node.js runtime. Also makes it consistent with its sibling ### Bun runtime. The slug is unchanged (#nodejs-runtime), so no inbound anchor breaks.
findings-f12Vale future tense (L71): Future tense ('Pulumi will use') -- prefer present tense for product behavior: 'Neo pauses', not 'Neo will pause' (brand guide: writing style). (prior disposition: deferred as judgment-level — tense rewrites are style, not a correctness fix) findings record "Pulumi will use Yarn instead if available" → "Pulumi uses Yarn instead if available".
findings-f13Vale wordiness (L108): 'Alternatively' is too wordy. (prior disposition: deferred as judgment-level — required rephrasing the sentence's connective, not deleting a word) findings record "Alternatively, if you specify main within your package.json, …" → "If you specify main within your package.json, …". The contrast with the preceding default-entrypoint sentence still reads.
findings-f14Vale future tense (L108): Future tense ('Pulumi will load') -- prefer present tense for product behavior: 'Neo pauses', not 'Neo will pause' (brand guide: writing style). (prior disposition: deferred as judgment-level — tense rewrites are style, not a correctness fix) findings record Both instances on the line: "Pulumi will load index.ts or index.js" → "Pulumi loads …", and "Pulumi will load that module instead" → "Pulumi loads that module instead".
findings-f15Vale future tense (L147): Future tense ('Pulumi will automatically') -- prefer present tense for product behavior: 'Neo pauses', not 'Neo will pause' (brand guide: writing style). (prior disposition: deferred as judgment-level — tense rewrites are style, not a correctness fix) findings record "Pulumi will automatically call this function and await the result" → "Pulumi calls this function automatically and awaits the result".
findings-f16Vale heading capitalization (L280): Heading 'Native ESM Support' should use sentence case (capitalize only the first word and proper nouns). (prior disposition: deferred as judgment-level — heading renames carry an anchor-stability question the fix lane would not decide) findings record ## Native ESM Support## Native ESM support, and the in-page link text at the Enabling async support note updated to match. Slug unchanged (#native-esm-support). Vale still reports this heading in the re-run — see Style improvements below; it is a rule limitation on the ESM acronym, not an unapplied fix.
findings-f17Vale future tense (L327): Future tense ('Pulumi will not automatically') -- prefer present tense for product behavior: 'Neo pauses', not 'Neo will pause' (brand guide: writing style). (prior disposition: deferred as judgment-level — tense rewrites are style, not a correctness fix) findings record "Pulumi will not automatically configure an ESM loader" → "Pulumi does not configure an ESM loader automatically". Also dropped the "Note that" opener and added the serial comma in "--loader, --import, or --require".

Backlog declined

Banked finding Source PR Why not executed
findings-f3Claim (c46): The TypeScript team recommends running TypeScript 6.0 side-by-side with TypeScript 7.0 until TypeScript 7.1 ships, using the @typescript/typescript6 backward… — unverifiable (prior disposition: deferred as judgment-level — the cited blog post fetched as analytics boilerplate, so the claim could be neither confirmed nor corrected) (this run: c44 verified high at L233) findings record superseded by re-verification: this run's .verified-claims.json re-verdicted the same sentence verified (high) at L233 (c44, text overlap 0.92). Pre-declined by the composer.
findings-f4Claim (c47): Aliasing the @typescript/typescript6 compatibility package as typescript allows Pulumi's built-in TypeScript support to keep running a program with TypeScr… — unverifiable (prior disposition: deferred as judgment-level — the cited blog post fetched as tracking boilerplate, so the claim could be neither confirmed nor corrected) (this run: c18 verified high at L95) findings record superseded by re-verification: this run's .verified-claims.json re-verdicted the same sentence verified (high) at L95 (c18, text overlap 0.50). Pre-declined by the composer.
findings-f1Claim (c7): Setting runtime: bun in Pulumi.yaml configures Pulumi to use the Bun runtime. — unverifiable (prior disposition: deferred as judgment-level — the cited bun.sh homepage is not an authority for Pulumi's own runtime setting) (this run: c6 unverifiable low at L46-50) findings record Declined: re-verified unverifiable (low) again this run for the same reason — the inline link is a "what is Bun" pointer, not the citation for this behavior, which is Pulumi-internal. Verifying it needs pulumi/pulumi runtime-loader source, outside this lane's evidence base; the statement itself shows no sign of being wrong, so there is nothing defensible to change.
findings-f2Claim (c9): Function serialization and dynamic providers are unsupported on the Bun runtime because they depend on Node.js v8/inspector APIs that Bun does not fully implem… — unverifiable (prior disposition: deferred as judgment-level — the pre-fetched Bun compat page was truncated to sidebar navigation, so the cited section text was never seen) (this run: c8 unverifiable low at L55) findings record Declined: re-verified unverifiable (low) this run with the same truncation. The cited anchor (https://bun.com/docs/runtime/nodejs-compat#nodeinspector) returns 200, and the claim is a Pulumi support statement whose authority is pulumi/pulumi, not Bun's docs. Correcting it would mean authoring a new causal explanation on low-confidence evidence.
findings-f5Claim (c51): You can use ESM syntax like import or export in Pulumi TypeScript code, but it will be compiled to CommonJS behind the scenes by default. — unverifiable (prior disposition: deferred as judgment-level — nodejs.org/api/modules.html documents CommonJS generally and says nothing about Pulumi's templates) (this run: c49 unverifiable low at L282) findings record Declined as a claim finding: re-verified unverifiable (low) this run, for the same reason — the citation is a CommonJS reference, and what the Pulumi templates' tsconfig.json emits is a repo fact, not a Node.js docs fact. The sentence was reworded for style in the secondary sweep ("but it will be compiled to CommonJS behind the scenes" → "but the compiler emits CommonJS behind the scenes"); that is a tense/wordiness fix and deliberately preserves the assertion rather than adjudicating it.
findings-f7Claim (c54): Setting the module and moduleResolution fields in tsconfig.json to nodenext ensures TypeScript outputs ESM. — unverifiable (prior disposition: deferred as judgment-level — the tsconfig reference page fetched as menu CSS, so the option semantics were never read) (this run: c52 unverifiable low at L295) findings record Declined: re-verified unverifiable (low) this run with the same fetch failure. Nothing in the artifacts contradicts it — and c51 on the neighbouring sentence independently cites the tsconfig reference in support of module: nodenext being the ESM/top-level-await lever — so there is no correction to make. The line was edited for the findings-f6 re-attribution, which leaves this assertion intact.
findings-f8Claim (c55): When using a version of @pulumi/pulumi older than 3.183.0, a user needs to instruct Pulumi to use the ts-node/esm loader by setting the nodeargs option i… — unverifiable (prior disposition: deferred as judgment-level — the linked project-file page fetched as site navigation, so nodeargs was never confirmed, and the 3.183.0 boundary has no cited source) (this run: c53 unverifiable low at L317) findings record Declined: re-verified unverifiable (low) this run. The 3.183.0 version boundary is exactly the kind of pin that needs an authoritative changelog entry before it is touched, and guessing a different version would be worse than leaving it. Flagged for a human with pulumi/pulumi release access. (The link on this line was changed to a site-relative path — see Link improvements — which does not bear on the claim.)
findings-f9Claim (c56): If a user provides any of the --loader, --import, or --require arguments in nodeargs, Pulumi will not automatically configure an ESM loader, and the us… — unverifiable (prior disposition: deferred as judgment-level — the cited tsx repo landing page says nothing about Pulumi's nodeargs handling) (this run: c54 unverifiable low at L327) findings record Declined: re-verified unverifiable (low) this run for the same reason — the tsx link is an example pointer, and the opt-out behavior is Pulumi-internal. The sentence was rewritten for tense under findings-f17 with its logic unchanged; establishing whether the behavior is still accurate needs the Node.js language host source.

Secondary sweep

  • Style improvements: Converted the remaining product-behavior future tenses that Vale did not itself flag — "it will first attempt to load the compiler … and then fall back" → "it first attempts … and falls back"; "that version will be used instead" → "Pulumi uses that version instead"; "Any options set in your tsconfig.json file will be picked up by Pulumi" → "Pulumi picks up any options set in your tsconfig.json file" (also active voice); "This will tell Node.js to treat your package as an ESM package" → "This tells Node.js …"; "You will need to reference it in most Pulumi programs" → "Most Pulumi programs reference it". Trimmed three wordy openers: "If you would like full control" → "If you want full control", "If you would like to install them, you can use the dev tag" → "To install them, use the dev tag", "If you wish to instead use ESM natively, you can set" → "To use ESM natively instead, set". Dropped the first person at L36 ("We recommend using the latest LTS version" → "Use the latest LTS version"). Ran the lane's Vale fixpoint loop: round 1 surfaced one finding my own fix had created (write-good.TooWordy on "but it is compiled", the replacement for "but it will be compiled"), resolved by making the compiler the actor — "but the compiler emits CommonJS behind the scenes"; round 2 converged. One finding remains open after convergence: Pulumi.HeadingSentenceCase still reports ## Native ESM support (L280), because the rule reads the ESM acronym as a capitalized non-initial word. The heading is correct sentence case and I am leaving it; the rule needs an acronym allowance in styles/Pulumi/, which is out of scope here.
  • Structural fixes: Executed both of this run's .readthrough-findings.json items, each fix_class: local_repair. (1) self-redundancy, L86-215: the bundled-TypeScript-3.8.3-versus-package.json explanation appeared in full under Languages and again nearly verbatim under TypeScript versions. The L86 copy is now a forward pointer ("Pulumi compiles TypeScript for you, and works with a range of compiler versions. See TypeScript versions … and Using TypeScript 7 …"), and the single full explanation lives under TypeScript versions. (2) prerequisite-inversion, L175-177: the note under Enabling async support referenced Native ESM Support and top-level await as if the reader had already met them, 100+ lines before either is defined. It is now a plain forward pointer ("Native ESM support, later on this page, describes an alternative to the export function pattern shown here: top-level await."). No heading levels, ordering, or sections changed beyond these.
  • Code formatting: No changes. All eight blocks are fenced with correct language identifiers (yaml, json, bash, typescript, javascript), the {{< chooser >}} / {{% choosable %}} pairs are balanced, and the two tsconfig.json examples remain valid under the corrected findings-f6 prose ("target": "ES2022" satisfies "ES2017 or later").
  • Terminology corrections: "backwards compatibility" → "backward compatibility" in both places (American English, and the page already used "backward" in a third). "built in TypeScript support" → "built-in TypeScript support", matching the Disabling built-in TypeScript support heading and the rest of the page. Heading "Using ESM only modules …" → "Using ESM-only modules …" (hyphenated compound adjective; the slug is identical either way, so no anchor breaks). Product names left alone — Yarn Plug'n'Play, pnpm, Bun, npm are all already canonical.
  • Link improvements: The runtime options link in the native-ESM note pointed at the absolute https://www.pulumi.com/docs/iac/concepts/projects/project-file/#runtime-options; changed to the site-relative canonical path /docs/iac/concepts/projects/project-file/#runtime-options per AGENTS.md. All 17 external URLs in .fetched-urls.json returned 200 — no dead links. One observation, not changed: the page cites Bun at two different domains, https://bun.sh (L46) and https://bun.com/docs/… (L55). Both resolve 200 and I have no artifact evidence for which Bun considers canonical, so normalizing is left for a human.
  • Image and diagram improvements: No changes — the page references no images or diagrams (see Screenshot check).
  • Content enhancements: No new content beyond the backlog corrections and the two structural repairs; the page's purpose and scope are unchanged. The glow-up scope gate reported two superlative/ranking matches, both pre-existing wording I did not introduce and both marked supported: true in .self-check-report.json: "for the best experience" (L36, where I only replaced "We recommend using" with "Use", keeping the clause as the page already had it) and "The default Pulumi templates" (L282, where "default" is a factual property of the templates, restated unchanged from the original sentence). Neither is a claim this run added, and no new superlative, ranking, or recommendation language was introduced anywhere. Also deliberately left in place: "The fastest way to get started with Pulumi and Node.js is to use a TypeScript template" (L92) — pre-existing, untouched, and no artifact in this run speaks to it.

Screenshot check

No images. The page source references no screenshots, diagrams, or other content images (only the generic shared meta_image card, if any), so there is nothing to verify. (Determined from the source; the screenshot pass was skipped.)

Verification

  • make lint: ✅ make lint re-verified by the workflow on 6dd5b85
  • Pre-step artifacts:
    • .verified-claims.json: 69 verdict(s); 1 contradicted/mismatch, 8 unverifiable
    • .vale-findings.json: 8 finding(s)
    • .readthrough-findings.json: ran=True, 2 finding(s)
    • .frontmatter-validation.json: 1 file(s); 0 alias collision(s)
  • No artifact was missing or carried an errors field.
  • Glow-up scope self-check (verify-glowup-scope.py): pass, churn 46 of 400 allowed, one changed path (the queued page), no protected-frontmatter changes.
  • Vale fixpoint loop: 2 rounds, converged; 1 finding left open (Pulumi.HeadingSentenceCase on ## Native ESM support, a rule limitation — see Style improvements).

Automated existing-content review.

Co-Authored-By: Claude <noreply@anthropic.com>
@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 Sep 11, 2026
@pulumi-bot

pulumi-bot commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator Author

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

Copy link
Copy Markdown
Contributor

@claude #new-review

@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

🤖 Review errored. Flip to draft and back to ready, or mention @claude #update-review, to retry.

@github-actions github-actions Bot added review:in-progress Claude review is currently running review:error Workflow failed before publishing a review; see Actions logs and removed review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention review:in-progress Claude review is currently running labels Sep 11, 2026
@CamSoper

Copy link
Copy Markdown
Contributor

@claude #new-review

@github-actions github-actions Bot added review:in-progress Claude review is currently running and removed review:error Workflow failed before publishing a review; see Actions logs labels Sep 11, 2026
@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Reviewer's guide v3 — not for the author

Tip

This is the reviewer's guide. Work through the ⚠️ checklist below, then approve — approving asserts only that the ⚠️ items looked right to you. Machine-verified this run: links, shortcodes, page metadata, and every claim marked verified (receipts on the evidence page). Code samples are read, not compiled.

PR author: your to-do list is the other review comment, "Author action guide" — nothing on this card is yours.

Note

What this PR changes:

  • Copy-edits throughout: future tense to present ("Pulumi will use" → "Pulumi uses"), "backwards" to "backward", and tightened phrasing.
  • Two headings corrected to sentence case: "Node.js Runtime" and "Native ESM Support".
  • The TypeScript-versions paragraph at line 86 is replaced by a pointer to the "TypeScript versions" and "Using TypeScript 7" sections instead of restating the version range.
  • The ESM note at line 176 is rewritten to point forward to "Native ESM support" rather than back to top-level await.
  • A hardcoded https://www.pulumi.com/docs/... link at line 317 is changed to a site-relative path.
  • The stated minimum TypeScript target for top-level await is changed from ES2022 to ES2017 in two places.

On a version-and-config reference page, the wrongness that blocks a reader is a version number or compiler setting that doesn't match the sample they copy. Claim verification, a frontmatter sweep, and link and shortcode checks ran over the changed lines.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts MEDIUM Three reworded claims restate text the page already carried, so they were filed as pre-existing rather than checked fresh — → see the evidence page.

⚠️ Check these before approving

No findings to check — but the editorial stances below still need a human eye.

Editorial stances introduced by this PR

Superlative, ranking, or comparative language the diff adds. No verdict — a page's own framing isn't fact-checkable — but confirm each is a stance the docs should take, and that no agent-written rewrite introduced it unasked.

  • L282 content/docs/iac/languages-sdks/javascript/_index.md"The default Pulumi templates compile TypeScript code to CommonJS modules. You can use ESM syntax like import or…" — positioning (found by regex)
  • L333 content/docs/iac/languages-sdks/javascript/_index.md"Unlike the export function pattern used in CommonJS programs, top-level await lets you await any Promise directly at the module level, before or between…" — comparison (found by llm-atomic+llm-holistic)

✅ What you can rubber-stamp

  • Facts: 32 factual claims checked — 27 verified clean, 5 settled — see the evidence page.
  • Mechanics: frontmatter sweep ran.
  • Style: 1 advisory suggestion(s) left with the author; never blocking.

💡 Pre-existing issues in touched files: 3 — details on the evidence page.

📎 Full evidence: verification trail, investigation log, review history.

Review v3 · updated 2026-09-14T23:23:27Z · head commit 1be2119


For the reviewer: the ⚠️ items above are the minutes that matter — the receipts for everything machine-verified are on the evidence page. The author's open items live on their own card (the comment headed "Author action guide"); while any are open, a Waiting on the author list above tracks them, and merge stays blocked until they're answered. If something here seems off, comment on the PR — @claude <your point> #update-review re-adjudicates with your input.

@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Author action guide v3 — nothing blocks merge

Note

Nothing here blocks merge — no open items need an answer from you. A human reviewer still approves the merge.

This PR is a copy-edit pass over the JavaScript/TypeScript language reference page; the review checked every factual claim in the changed lines against the page's own code samples and the upstream TypeScript and Node.js docs.

🚨 Fix or disagree

Nothing to fix — this section is empty.

❓ Questions for you

No open questions for you.

✅ Resolved since last review

ID Where Finding
F1 content/docs/iac/languages-sdks/javascript/_index.md L335 "target to ES2017 or later, as shown above" — verdict: contradicted; the tsconfig.json sample it points at sets "target": "ES2022". — ✅ fixed in 1be2119 — L335 now reads target to ES2022 or later, matching the tsconfig.json sample at L301
F4 content/docs/iac/languages-sdks/javascript/_index.md L295 Promoted from ❓ — same change as F1: "as long as target is ES2017 or later" contradicts the "target": "ES2022" sample directly below it. — ✅ fixed in 1be2119 — L295 now reads target is ES2022 or later, matching the sample it introduces

📎 Full evidence: verification trail, investigation log, review history.

Review v3 · updated 2026-09-14T23:23:27Z · head commit 1be2119


How to answer

Every 🚨 and ❓ item above needs one of these before merge:

  1. Fix it — push the change. If your push lines up with the flagged lines, this card shows a 🔄 banner within a minute and then refreshes itself. No banner? Comment:

    @claude I pushed a fix for F1 #update-review
    
  2. Disagree with it — say which item and why; the review re-checks with your input:

    @claude F2: <your reasoning — e.g. where the figure comes from> #update-review
    

    Either way your answer counts: the review marks the item resolved, or keeps it with a 🛡️ note for your human reviewer to weigh — it stops blocking merge in both cases.

  3. Accept it as-is — you own the PR; a one-line reason is a valid answer, and your reviewer sees it beside the finding:

    @claude F2: accepting as-is — <your reason> #update-review
    

    To accept every open item at once: @claude accepting all open items — <reason> #update-review.

The #update-review hashtag matters — it routes your reply to this review, and (besides pushing a fix) it is the only reply that unblocks merge. A bare @claude gets you ad-hoc help and leaves this card — and the merge block — untouched.

Please don't edit, hide, or delete this comment — it is the review's record. Full mechanics: CONTRIBUTING.md §AI-assisted contributions.

@github-actions github-actions Bot added review:outstanding-issues Claude review completed; outstanding has author-actionable findings and removed review:in-progress Claude review is currently running labels Sep 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🤖 Review regenerated on @CamSoper's request.

@CamSoper

Copy link
Copy Markdown
Contributor

@claude implement the fixes for F1 and F4 as suggested and then #update-review

@github-actions github-actions Bot removed the review:outstanding-issues Claude review completed; outstanding has author-actionable findings label Sep 11, 2026
@github-actions github-actions Bot added the review:in-progress Claude review is currently running label Sep 11, 2026
The copy-edit pass changed the stated minimum `target` for top-level
`await` to ES2017 in two places, contradicting the `tsconfig.json`
sample directly below them, which sets `"target": "ES2022"`. Addresses
review findings F1 and F4.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🤖 Review updated on @CamSoper's request.

@github-actions github-actions Bot added review:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Sep 11, 2026

Copy link
Copy Markdown
Contributor

Two things from a cross-PR pass over the open bot queue.

1. #21596 was editing the same line and has been closed in favour of this PR. It rewrote the same paragraph at L86 with different text. Neither review mentioned the other, because the pipeline reviews one PR against master and can't see the rest of the queue -- both sat on review:no-blockers and would have conflicted on merge. This PR does the same job plus ~25 other edits, so it wins.

Worth folding in before merge: #21596's version of that sentence kept the fact that a template's pinned TypeScript version takes precedence over Pulumi's bundled compiler. This PR's replacement ("Pulumi compiles TypeScript for you, and works with a range of compiler versions...") drops it. That's the one piece of information the deleted paragraph carried that the pointer doesn't. #21596's wording for reference:

Pulumi templates typically include a specific TypeScript version in their package.json, which takes precedence over Pulumi's bundled compiler. See TypeScript versions below for supported version ranges, including guidance on using TypeScript 7.

2. The reviewer's guide summary on this PR is stale. Its "What this PR changes" block says the PR changes the top-level-await target "from ES2022 to ES2017 in two places." The current diff says ES2022 in both places -- that was findings F1 and F4, fixed in 1be2119. The findings table got updated, the change summary above it didn't. Anyone reviewing off that bullet will go looking for a downgrade that isn't there any more.


Generated by Claude Code

Copy link
Copy Markdown
Contributor

@claude The change summary in the reviewer's guide is stale and contradicts the diff. It says this PR changes the top-level await target "from ES2022 to ES2017 in two places" -- but findings F1 and F4 caught that downgrade and it was fixed in 1be2119. L295 and L335 both read ES2022 now, matching the tsconfig.json sample. The findings table records the fix; the "What this PR changes" block above it was never rewritten.

Also please re-adjudicate one content point. #21596 has been closed as superseded by this PR -- both were rewriting the same paragraph at L86 with different text. The sentence #21596 used kept a fact this PR's replacement drops: that a template's pinned TypeScript version takes precedence over Pulumi's bundled compiler. Worth deciding whether that belongs back in the pointer paragraph.

#update-review


Generated by Claude Code

@github-actions github-actions Bot added review:in-progress Claude review is currently running and removed review:no-blockers Claude review completed cleanly; outstanding is empty labels Sep 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🤖 Review updated on @CamSoper's request.

@github-actions github-actions Bot added review:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Sep 14, 2026
@CamSoper
CamSoper enabled auto-merge (squash) September 14, 2026 23:38
@CamSoper
CamSoper merged commit 082cb1a into master Sep 14, 2026
14 of 15 checks passed
@CamSoper
CamSoper deleted the content-review/glowup-docs-iac-languages-sdks-javascript branch September 14, 2026 23:38
CamSoper added a commit to CamSoper/pulumi.docs that referenced this pull request Sep 18, 2026
The pre-merge verifier stamped PR pulumi#21720's `terraform-provider` pin bump
(0.10.0 -> 1.4.0, the real latest release) `contradicted`, citing the live
published copy of the file under review. That page shows the pre-change
text, so it disagrees with every value a PR changes. A ledger audit found
9 of 66 contradicted verdicts citing the reviewed page's own URL and 9
more resting on other pulumi.com pages alone.

The shape is a useful change detector (it also caught two real bot
regressions, pulumi#21552 and pulumi#21602), so it is re-verified, not downgraded:

- verify-claims.py: a contradicted/mismatch whose only source is the
  reviewed page's live URL, or a contradicted resting on editorial
  pulumi.com pages alone, gets one more pass1 hop with a note explaining
  why that source is not evidence. An independently sourced answer
  stands; otherwise the verdict becomes `unverifiable`, stamped
  `source_discipline_gate: self-reference | same-site-only`, with the
  original reasoning preserved as an author question. Generated
  reference pages and URLs the claim itself names are exempt.
- route_claim: a `version` claim's non-URL source_hint names a package,
  not an external authority, so it routes pass1 (release tags) instead
  of being web-searched into pulumi.com's own page.
- claim-extraction.md: worked example 14 (whose version a nested
  `packages:` pin belongs to) and a `pulumi/<repo>` source_hint
  preference for version claims.
- Verifier prompt and fact-check.md state that rules 2 and 5 are now
  harness-enforced.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
CamSoper added a commit that referenced this pull request Sep 18, 2026
The pre-merge verifier stamped PR #21720's `terraform-provider` pin bump
(0.10.0 -> 1.4.0, the real latest release) `contradicted`, citing the live
published copy of the file under review. That page shows the pre-change
text, so it disagrees with every value a PR changes. A ledger audit found
9 of 66 contradicted verdicts citing the reviewed page's own URL and 9
more resting on other pulumi.com pages alone.

The shape is a useful change detector (it also caught two real bot
regressions, #21552 and #21602), so it is re-verified, not downgraded:

- verify-claims.py: a contradicted/mismatch whose only source is the
  reviewed page's live URL, or a contradicted resting on editorial
  pulumi.com pages alone, gets one more pass1 hop with a note explaining
  why that source is not evidence. An independently sourced answer
  stands; otherwise the verdict becomes `unverifiable`, stamped
  `source_discipline_gate: self-reference | same-site-only`, with the
  original reasoning preserved as an author question. Generated
  reference pages and URLs the claim itself names are exempt.
- route_claim: a `version` claim's non-URL source_hint names a package,
  not an external authority, so it routes pass1 (release tags) instead
  of being web-searched into pulumi.com's own page.
- claim-extraction.md: worked example 14 (whose version a nested
  `packages:` pin belongs to) and a `pulumi/<repo>` source_hint
  preference for version claims.
- Verifier prompt and fact-check.md state that rules 2 and 5 are now
  harness-enforced.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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:no-blockers Claude review completed cleanly; outstanding is empty

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants