Review evidence

pulumi/docs PR #21949 78e1d787c0 generated 2026-09-29T01:43:31Z

Verification trail

#1 ➖ Not a claim
.claude/commands/docs-review/scripts/extract-claims-llm.py:544
# reaches MAX_FILE_CHARS: the 770-line Pulumi YAML reference (30 KB)
framing: Internal code comment about the pipeline's own behavior. The 770-line figure is consistent with the file; the 30 KB size wasn't measured.; evidence: (escalated from pass3) This is a code comment in the author's own review-pipeline script. It explains why a split-and-retry step was added, citing a truncation incident, so it describes the author's own tooling rather than asserting a…; source: repo:.claude/commands/docs-review/scripts/extract-claims-llm.py L543-548; repo:content/docs/iac/languages-sdks/yaml/yaml-language-reference.md
source: repo:.claude/commands/docs-review/scripts/extract-claims-llm.py L543-548; repo:content/docs/iac/languages-sdks/yaml/yaml-language-reference.md
framing: Internal code comment about the pipeline's own behavior. The 770-line figure is consistent with the file; the 30 KB size wasn't measured.
pass1 · numerical · medium confidence
#2 ➖ Not a claim
.claude/commands/review-existing-content/SKILL.md:642
edit introduced. Each carries a provenance against the pristine page's own
evidence: This line is a fragment of an internal skill file (.claude/commands/...) that describes how the author's own review pipeline works: edits carry provenance against the original, unedited page. The regex flagged the word "introduced", but…; source: repo:.claude/commands/review-existing-content/SKILL.md L642
source: repo:.claude/commands/review-existing-content/SKILL.md L642
pass1 · temporal · high confidence
#3 ➖ Not a claim
.claude/commands/review-existing-content/SKILL.md:643
verdicts: `introduced` (your edit created or broke it) or `carried` (the page
evidence: This line is from the PR author's own skill instructions. It defines the two verdict labels (`introduced` and `carried`) the skill uses. It describes the author's own pipeline design, so there is nothing to check it against. The regex…; source: repo:.claude/commands/review-existing-content/SKILL.md L643
source: repo:.claude/commands/review-existing-content/SKILL.md L643
pass1 · temporal · high confidence
#4 ➖ Not a claim
.claude/commands/review-existing-content/SKILL.md:673
lines in its `line_range`:
evidence: The extracted text is a fragment ("lines in its `line_range`:") from an internal skill/command instruction file, which describes the author's own review pipeline. It says nothing about any third-party entity or product that could be…; source: .claude/commands/review-existing-content/SKILL.md:L673; intuition: The regex extractor matched pipeline-instruction prose, not a factual claim.
source: .claude/commands/review-existing-content/SKILL.md:L673
pass3 · entity-spec · high confidence
#5 ➖ Not a claim
.claude/commands/review-existing-content/SKILL.md:679
an `unverifiable` claim you `introduced` (a glow-up must not add a claim
evidence: This line is an instruction in an internal Claude skill file that describes the author's own review process (a glow-up must not add an unverifiable claim). It isn't a falsifiable temporal assertion. The regex matched the word…; source: repo:.claude/commands/review-existing-content/SKILL.md L679
source: repo:.claude/commands/review-existing-content/SKILL.md L679
pass1 · temporal · high confidence
#6 ➖ Not a claim
.claude/commands/review-existing-content/SKILL.md:691
line>`, and move its id from `executed_ids` to `declined_ids` (adjusting
evidence: This is a piece of a procedural instruction in the PR author's own skill file. It tells the agent to move an id from `executed_ids` to `declined_ids`, which describes the author's own workflow. It makes no third-party factual assertion…; source: .claude/commands/review-existing-content/SKILL.md:L691; intuition: Probably a false positive from the regex extractor: the "entity-spec" match is on internal field names in an…
source: .claude/commands/review-existing-content/SKILL.md:L691
pass3 · entity-spec · high confidence
#7 ➖ Not a claim
.claude/commands/review-existing-content/SKILL.md:692
`fixes` / `skipped_findings`) in `.content-review-verdict.json`. Do not touch
evidence: This line is an instruction in an internal Claude skill file. It names fields (`fixes`, `skipped_findings`) in the author's own `.content-review-verdict.json` output format. It describes the PR author's own pipeline and makes no…; source: .claude/commands/review-existing-content/SKILL.md:L692
source: .claude/commands/review-existing-content/SKILL.md:L692
pass3 · entity-spec · high confidence
#8 ➖ Not a claim
.claude/commands/review-existing-content/SKILL.md:768
finding to the routed team by name. There are at most two passes per PR and
framing: This is the author's description of their own pipeline design, and the regex flagged 'by name' as an attribution by mistake.; evidence: This line comes from an internal Claude skill definition (.claude/commands/review-existing-content/SKILL.md). It describes how the author's own review pipeline works: findings are routed to a team by name, and each PR gets at most two…; source: repo:.claude/commands/review-existing-content/SKILL.md L768 (claim text only; no external source applicable)
source: repo:.claude/commands/review-existing-content/SKILL.md L768 (claim text only; no external source applicable)
framing: This is the author's description of their own pipeline design, and the regex flagged 'by name' as an attribution by mistake.
pass3 · attribution · high confidence
#9 ➖ Not a claim
.github/workflows/content-review-article.yml:822
# costs -- $1-6 per glow-up in the Sept 2026 replays.
framing: Self-reported internal cost figure from the author's own replay runs; no cited source.; evidence: This is a YAML code comment in a GitHub Actions workflow. It describes what the author's own review pipeline cost in internal September 2026 replay runs. That is internal operational data about the author's own design, not a third-party…; source: repo:.github/workflows/content-review-article.yml L822 (code comment; no external source applicable)
source: repo:.github/workflows/content-review-article.yml L822 (code comment; no external source applicable)
framing: Self-reported internal cost figure from the author's own replay runs; no cited source.
pass3 · numerical · medium confidence
#10 ➖ Not a claim
.github/workflows/content-review-article.yml:853
--mcp-config '{"mcpServers": {"pulumi-brand": {"type": "http", "url": "https://brand.pulumi.com/mcp"}}}'
evidence: This line is CI configuration: it points the author's own review workflow at the brand MCP endpoint, so it isn't a factual assertion. The same config string appears in other pulumi/docs workflows (claude.yml, check-links.yml…; source: gh search code --owner pulumi "brand.pulumi.com/mcp"
source: gh search code --owner pulumi "brand.pulumi.com/mcp"
pass1 · url · high confidence
#11 ➖ Not a claim
.github/workflows/content-review-article.yml:886
--mcp-config '{"mcpServers": {"pulumi-brand": {"type": "http", "url": "https://brand.pulumi.com/mcp"}}}'
evidence: This line is the PR author's own CI config: an MCP server endpoint in a workflow `--mcp-config` flag. It isn't a factual assertion made to readers. The same endpoint config shows up word for word in many sibling workflows (claude.yml…; source: gh search code --owner pulumi "brand.pulumi.com/mcp"
source: gh search code --owner pulumi "brand.pulumi.com/mcp"
pass1 · url · high confidence
#12 ➖ Not a claim
.github/workflows/content-review-glowup-autofix.yml:199
--mcp-config '{"mcpServers": {"pulumi-brand": {"type": "http", "url": "https://brand.pulumi.com/mcp"}}}'
framing: The line describes the PR author's own pipeline setup. It matches the established pattern in the sibling workflows.; evidence: This line is CI config: the workflow's own MCP server endpoint, not a factual statement. It is written exactly the same way in about ten sibling workflows in pulumi/docs (claude.yml, claude-code-review.yml, content-review-article.yml…; source: gh search code --owner pulumi "brand.pulumi.com/mcp"
source: gh search code --owner pulumi "brand.pulumi.com/mcp"
framing: The line describes the PR author's own pipeline setup. It matches the established pattern in the sibling workflows.
pass1 · url · high confidence
#13 ➖ Not a claim
.github/workflows/content-review-glowup-autofix.yml:312
if [ -s "$OUT/status.txt" ] && awk '{print $2}' "$OUT/status.txt" | grep -vxF "$ARTICLE" | grep -q .; then
framing: The regex extractor probably mistook the awk field '$2' for a numerical claim.; evidence: This is a shell conditional in a GitHub Actions workflow. The "$2" is an awk field reference (the second column), not a numerical assertion, so there is nothing to fact-check.; source: .github/workflows/content-review-glowup-autofix.yml:L312
source: .github/workflows/content-review-glowup-autofix.yml:L312
framing: The regex extractor probably mistook the awk field '$2' for a numerical claim.
pass3 · numerical · high confidence
#14 ➖ Not a claim
scripts/content-review/glowup-autofix.py:65
FOOTER = "\n\n---\n_Generated by [Claude Code](https://claude.ai/code)_\n"
framing: Footer string describing the author's own tooling output; the URL is the standard 'Generated by Claude Code' attribution link.; evidence: This is a hardcoded attribution footer string in the PR author's own automation script, so it isn't a factual assertion about a third party. The link itself looks fine: Anthropic's Claude Code product page describes Claude Code as…; source: WebSearch ran query "claude.ai/code Claude Code"; https://claude.com/product/claude-code
source: WebSearch ran query "claude.ai/code Claude Code"; https://claude.com/product/claude-code
framing: Footer string describing the author's own tooling output; the URL is the standard 'Generated by Claude Code' attribution link.
pass3 · url · medium confidence
#15 ➖ Not a claim
scripts/content-review/glowup-autofix.py:67
_PASS_RE = re.compile(rf"<!--\s*{PASS_MARKER}\s+pass=(\d+)\s+head=([0-9a-f]{{7,40}})\s*-->")
evidence: This line is a regex in the PR's own script. It parses the author's own HTML-comment marker, so it describes their own pipeline and makes no factual claim. The `{7,40}` quantifier is a hex-length range for git SHAs: 7 is git's default…; source: scripts/content-review/glowup-autofix.py:L67
source: scripts/content-review/glowup-autofix.py:L67
pass3 · numerical · high confidence
#16 ➖ Not a claim
scripts/content-review/glowup-autofix.py:247
pm = re.match(r"^(\d+) \(([0-9a-f]*)\)", cells[0])
framing: The regex extractor matched code; it is not prose making a claim.; evidence: This line is Python source code: a regex pattern in the PR's own content-review script. The digits are regex syntax (`\d+`, `[0-9a-f]`), not a numerical assertion, so there is nothing to fact-check.; source: scripts/content-review/glowup-autofix.py:L247
source: scripts/content-review/glowup-autofix.py:L247
framing: The regex extractor matched code; it is not prose making a claim.
pass3 · numerical · high confidence
#17 ➖ Not a claim
scripts/content-review/glowup-autofix.py:372
check(ans.rstrip().endswith("_Generated by [Claude Code](https://claude.ai/code)_"), "footer")
framing: The regex extractor picked up a URL inside a code string literal. The line describes the author's own pipeline and has no third-party source behind it.; evidence: This line is a Python assertion in the PR author's own autofix script. It checks that generated output ends with a fixed footer string. The URL is part of a string literal the script matches against. It doesn't assert anything about…; source: scripts/content-review/glowup-autofix.py:L372
source: scripts/content-review/glowup-autofix.py:L372
framing: The regex extractor picked up a URL inside a code string literal. The line describes the author's own pipeline and has no third-party source behind it.
pass3 · url · high confidence

Findings

No findings.

Editorial stances

The extractor found no positioning or comparison language in this PR's added lines.

Investigation log

cross-sibling-reads
not run (not in a templated section)
external-claim-verification
0 of 17 claims verified (0 unverifiable, 0 contradicted) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 7 Pass 1, 0 Pass 2, 10 Pass 3 (verified 0, contradicted 0, unverifiable 10).
cited-claim-spot-checks
not run (no cited claims)
frontmatter-sweep
not run (no frontmatter in diff)
temporal-trigger-sweep
ran (recency words present in diff; spot-check in-review)
code-execution
not run (no `static/programs/` change)
code-examples-checks
ran (3 specialists: structural, existence, body-code-coverage); 0 findings
editorial-balance-pass
not run (not under content/blog/)

History

  1. 2026-09-28T19:09:09Z b7f6561

    initial review (pending publication)

  2. 2026-09-28T20:23:21Z c91cec9f69

    Re-verified c91cec9f (autofix opt-in, tool scope, fail-closed export, trusted checkouts); no new findings

  3. 2026-09-28T21:20:26Z edf9fda3ea

    Re-verified edf9fda: isolated postcheck job, cleared trusted checkouts, narrower escalation; no new findings

  4. 2026-09-28T21:50:29Z 5d470309c8

    Re-verified at 5d47030 after rebase; extract-claims conflict kept master's retry, TruncatedError split intact

  5. 2026-09-28T22:04:39Z 78d194b675

    78d194b hardens settle/autofix/human_activity; no open findings to adjudicate, no new issues

  6. 2026-09-28T23:05:59Z bc86ed7137

    Re-checked after rebase onto bc86ed7; merged tests match compose-review symbols; no open findings, none added

  7. 2026-09-29T01:43:31Z 78e1d787c0

    78e1d787: GLOWUP_PREVERIFY gates wrapped in format(); new workflow var-gate guard test. No new findings.