원클릭으로
umb-blogpost-images
Add hero images to blog posts and render image previews on list and detail pages. Use when asked to add blog media.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Add hero images to blog posts and render image previews on list and detail pages. Use when asked to add blog media.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Ensure sufficient authored blog entries for the demo. Use when asked to generate or expand blog content.
Run the end-to-end Umbraco blogging-site demo as a Conductor multi-agent workflow. Use when asked to build the full demo site via Conductor (the orchestrated, workflow-driven variant of the umbraco-demo agent).
Create Blog List and Blog page document types and templates, plus exactly one starter blog post. Use when asked to set up blog pages in Umbraco.
Create the Umbraco home page structure, template, styling, and published root content. Use when asked to scaffold or build the home page.
Implement shared site navigation and validate rendering with Playwright. Use when asked to add or improve navigation.
Run accessibility checks and fix issues until passing. Use when asked to test or improve website accessibility.
SOC 직업 분류 기준
| name | umb-blogpost-images |
| description | Add hero images to blog posts and render image previews on list and detail pages. Use when asked to add blog media. |
Git: Before making changes, verify you are on a
develop/*branch (seegit.instructions.md).
heroImage property using the Image Media Picker data type.Image acquisition lives in the separate umb-image-sourcing skill: it
runs the .github/skills/umb-image-sourcing/source-blog-images.ps1 discovery script to find Unsplash
photos, uploads each into a "Blog Hero Images" media folder, and hands back a
mapping of blog post -> media item.
umb-image-sourcing yet, do it first — it produces the
media items this skill assigns.update-document-properties to set the heroImage property on each blog post.[{"key": "<uuid>", "mediaKey": "<media-id>", "mediaTypeAlias": "Image", "crops": [], "focalPoint": null}]
key is a NEW unique GUID for this picker entry (any GUID).mediaKey MUST be the real key (GUID) of the uploaded media item — read
it back from the media library; do not guess or reuse the post id.mediaTypeAlias MUST match the media item's ACTUAL type. The hero media must
be Image (see umb-image-sourcing). Declaring "Image" here while the
media is really a File makes publish drop the value.update-document-properties (heroImage assignment) calls together in one parallel tool batch, wait for them to return, then issue all the publish-document calls in one parallel batch. Parallel update + publish of distinct content nodes is verified safe on the LocalDB backend (no deadlocks). Keep the assign→publish order for any given post (assign first, then publish).If the draft has heroImage set but get-document-publish shows
"heroImage","value":[] (empty) on the published version, do NOT keep
republishing or switch to update-document — that wastes time and will not
help. The value is being stripped at publish because the referenced media is
the wrong type. Fix the cause instead:
get-media-by-id) and check its media/content type.umb-image-sourcing), then
re-assign using the new media key and republish once.This is a known Umbraco gotcha, not an MCP bug.
IPublishedContent and build a
cropped URL with GetCropUrl(...):
var heroImage = Model.Value<Umbraco.Cms.Core.Models.PublishedContent.IPublishedContent>("heroImage");
var heroImageUrl = heroImage?.GetCropUrl(width: 1200, height: 500); // hero
// for list cards: heroImage?.GetCropUrl(width: 600, height: 300)
?width=1200&height=500&mode=crop. This
site has HMAC-signed media URLs enabled, so an unsigned ?width=... request
returns HTTP 400 Bad Request and the image fails to load. GetCropUrl
produces a correctly signed URL — use it for hero images AND list thumbnails.<img> (hero and thumbnail) MUST have a meaningful alt attribute —
use the blog post title. Accessibility is validated later in the build, so
do not introduce images without alt text (it would fail a11y).umb-image-sourcing provided photographer attribution, render a small
"Photo by <name> on Unsplash" credit near the hero image (Unsplash ToS).MediaWithCrops type in Razor — use IPublishedContent instead.umb-image-sourcing's job.Use Playwright to:
After validation passes, commit all changes before considering this step done:
git add -A
git commit -m "Step 5: Blog post images — <brief summary>"
This commit is mandatory. The step is not complete until the commit exists in the git log.