Skip to content

Update about page hero and migrate images to fingerprinted assets#18857

Merged
jeffmerrick merged 2 commits into
masterfrom
jeffmerrick/issue-18847-about-us-fixes
May 8, 2026
Merged

Update about page hero and migrate images to fingerprinted assets#18857
jeffmerrick merged 2 commits into
masterfrom
jeffmerrick/issue-18847-about-us-fixes

Conversation

@jeffmerrick
Copy link
Copy Markdown
Contributor

@jeffmerrick jeffmerrick commented May 8, 2026

Proposed changes

  • Fix page heading and navigation extending to edges of the page on mobile.
  • Replace the team photo hero with new photo, switch the rendered <img> to use the fingerprinted-img.html partial.
  • Move journey.svg from static/images/about-us/ to assets/fingerprinted/images/about-us/ so it gets fingerprinted/responsive treatment.
  • Update the fingerprinted-img.html partial to always emit alt (defaulting to empty) so callers can pass alt="" for decorative images without the attribute being dropped.

Related issues

Refs #18847

Replace the team photo hero with a decorative hero.svg, move the journey
diagram to assets/fingerprinted/, and route both through the
fingerprinted-img partial. Update the partial to always emit alt so
callers can pass an empty alt for decorative images.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented May 8, 2026

Docs Review

Scope reviewed: full PR diff for #18857.

Overall this is a clean migration to the fingerprinted-img pipeline. The asset relocation is correct, no leftover references to team.png exist in the repo, and the alt="" pattern for the decorative hero is the right accessibility choice. A few small notes:

layouts/page/about.html

Line 3 — double space in class list:

<div class="container w-full h-full overflow-hidden  pointer-events-none mx-auto bg-violet-50 lg:rounded-lg">

There's an extra space between overflow-hidden and pointer-events-none. Harmless to render, but worth tidying:

        <div class="container w-full h-full overflow-hidden pointer-events-none mx-auto bg-violet-50 lg:rounded-lg">

Line 104 — empty class is a no-op:

{{ partial "fingerprinted-img.html" (dict "src" "/images/about-us/journey.svg" "alt" "A timeline of Pulumi's history" "class" "") }}

The partial guards class emission with {{ with $.class }}, and with treats "" as falsy, so the empty string is dropped. Either drop the key or pass a value:

            {{ partial "fingerprinted-img.html" (dict "src" "/images/about-us/journey.svg" "alt" "A timeline of Pulumi's history") }}

layouts/partials/fingerprinted-img.html

The switch from {{ with $.alt }}alt="{{ . }}"{{ end }} to alt="{{ $.alt }}" (lines 27 and 30) is a behavior change for every caller, not just the about page — any caller that omits alt now gets alt="" instead of no attribute. That's a net accessibility win (a missing alt is invalid; an explicit empty alt correctly marks the image as decorative for assistive tech), but worth flagging that it touches at least one existing caller that doesn't pass alt:

  • layouts/gads/gads-neo.html:326{{ partial "fingerprinted-img.html" (dict \"src\" $block.graphic \"class\" \"mx-auto\") }}. After this change it renders as alt=\"\", which is probably correct for a decorative graphic, but if any of those $block.graphic images are content-bearing the data should grow an alt field. Worth a quick spot-check of the gads-neo content.

Deleted static/images/about-us/team.png

No remaining references in content/, layouts/, data/, or assets/. Per AGENTS.md, deleted static files outside Hugo's content management can warrant an S3 redirect in /scripts/redirects/, but a team photo on a marketing page is unlikely to have meaningful inbound links — fine to leave as-is unless analytics show otherwise.

Things I checked and they're fine

  • h-112 is valid in Tailwind v4 (dynamic spacing scale = 28rem / 448px); no config change needed.
  • hero.svg ends with a newline.
  • The partial's path resolution (fingerprinted/ + trimmed src) lines up with the new assets/fingerprinted/images/about-us/{hero,journey}.svg locations.
  • object-cover on the SVG is fine — the hero's viewBox aspect ratio (~2.59:1) doesn't match the h-112 w-full container, so cropping behavior is intentional.

Mention me (@claude) if you'd like another pass after changes.

@pulumi-bot
Copy link
Copy Markdown
Collaborator

@pulumi-bot
Copy link
Copy Markdown
Collaborator

Lighthouse Performance Report

Commit: e9a2786 | Metric definitions

Page Device Score FCP LCP TBT CLS SI
Homepage Mobile 🟡 68 2.9s 2.9s 962ms 0.019 3.7s
Homepage Desktop 🟢 95 0.8s 1.1s 28ms 0.014 1.6s
Install Pulumi Mobile 🔴 34 5.3s 7.7s 246ms 0.442 7.9s
Install Pulumi Desktop 🟡 83 1.3s 1.7s 22ms 0.024 3.0s
AWS Get Started Mobile 🟡 58 5.1s 7.6s 201ms 0.086 5.1s
AWS Get Started Desktop 🟡 82 1.3s 1.8s 22ms 0.024 3.0s

Replace the placeholder hero.svg with team-photo.jpg, adjust the hero
container's responsive sizing, and clean up two minor template issues
(double-space and empty class arg). Extend fingerprinted-img.html's
srcset to include 1200/1600/2000/2400 widths so larger maxWidth values
get appropriate responsive variants.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@iwahbe iwahbe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It fixes the margin thing.

@jeffmerrick jeffmerrick merged commit 0cb139f into master May 8, 2026
7 checks passed
@jeffmerrick jeffmerrick deleted the jeffmerrick/issue-18847-about-us-fixes branch May 8, 2026 16:28
CamSoper added a commit to CamSoper/pulumi.docs that referenced this pull request May 11, 2026
…step

S41's fresh-fixture battery showed blog/claims-heavy PR reviews aren't
single-run-reproducible at the 🚨 tier — claim *discovery* is model-generated
and varies run to run, so one run catches a real blocking finding the next
misses (pulumi#18771 StrongDM misattribution, pulumi#18743 p5.48xlarge price vs Llama-3.3
nonexistence). Discovery is the weak link; verification is fine.

This lifts claim extraction out of the variable Opus review into a pre-step:

- extract-claims.py — Layer A: deterministic regex floor (numbers, version
  pins, temporal words, source attributions, URLs, named-entity/spec claims,
  positioning/comparison triggers) over the whole diff. Guarantees the
  concrete claims can never be silently dropped. safe_main().
- extract-claims-llm.py — Layer B: two redundant, differently-framed Sonnet
  passes (atomic/per-sentence and holistic/paragraph), direct /v1/messages
  call with temperature 0 + forced extract_claims tool schema, one call per
  changed content/**/*.md file, prompt-cached system prompt. Prompted with the
  new references/claim-extraction.md (taxonomy + the "what is NOT a claim"
  list incl. the third-party-attribution flip + framing rule + ≥10 worked
  examples, the S41 misses among them). safe_main(); degrades gracefully.
- merge-claims.py — unions the three layers into .candidate-claims.json:
  dedup by overlapping line range + token overlap, anchor LLM line ranges to
  file content, found_by provenance, pass-count → confidence.
- claude-code-review.yml — wires the four pre-steps; timeout-minutes: 25 on
  the claude-review job (S41 saw a review hang ~18 min).
- fact-check.md — .candidate-claims.json is the claim *floor* the review MUST
  verify (MAY add more); the in-review 4-way claim-finder dispatch retires on
  the normal path (the pre-step subsumes it), kept as a degraded-pre-step
  fallback; frontmatter-sweep scope pinned to frontmatter-validate.py's new
  per-file frontmatter_keys (fixes the pulumi#18745-r2 social.* omission).
- validate-pinned.py (schema v6→v7) — candidate-claims-coverage rule fails
  the review (soft-flooring loudly) if a candidate claim has no overlapping
  trail record; trail-bucket-consistency relaxed for pure-layout/0-claim PRs
  (pulumi#18857-r1 over-trigger).
- test_extract_claims.py + testdata/ — synthetic per-category tests + the 3
  real S41-fixture diffs (assert the dropped claims surface) + merge-claims
  dedup/anchor/provenance tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants