← MorphixCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Morphix
Snapshot Sep 30, 2026 · 22:47 UTC · version 1.2.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "thumbnail",
"description": "Design a thumbnail or cover image that stays readable at small size, for YouTube, podcasts, courses, blogs, or playlists. Trigger when the user asks for a thumbnail, a video cover, a podcast cover, a channel art piece, or an image to sit next to a title in a feed. Do not trigger for general poster or social graphic design, for product photography, for video, or for images where small-size legibility is not the point.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 1009
}
],
"skill_md_contents": "---\nname: thumbnail\ndescription: Design a thumbnail or cover image that stays readable at small size, for YouTube, podcasts, courses, blogs, or playlists. Trigger when the user asks for a thumbnail, a video cover, a podcast cover, a channel art piece, or an image to sit next to a title in a feed. Do not trigger for general poster or social graphic design, for product photography, for video, or for images where small-size legibility is not the point.\n---\n\n# Thumbnail\n\nDesign one image whose entire job is to win a click at roughly two hundred pixels wide.\n\n## Morphix tool contract\n\nThese are the tools available and the order they run in. Follow it exactly.\n\n**Getting the user's image in.** Chat attachments cannot be passed to generation. When a reference is needed, call show_upload_widget, which shows a drop box and returns an asset id once the user uploads. Never call upload_asset directly. If the user uploaded something earlier in the conversation, call get_assets and reuse that asset id rather than asking again.\n\n**Before spending credits.** Call explore_models to choose a model for this job, and get_account to confirm the user has credits. Both are read-only and free. Choosing a model blind, or starting a generation the user cannot pay for, are the two most common wasted turns.\n\n**Choosing a model.** Never hardcode a model name. Read the capabilities returned by explore_models and pick for the job at hand: reference fidelity when the result is anchored to a supplied image, text handling when legible type matters, motion quality for video, voice range for audio.\n\n**Generating.** generate_image and generate_video accept asset ids to edit or reference existing images, including image-to-video. generate_audio takes the script plus a voice chosen through explore_models. Each spends credits and renders a live view that polls itself, so never poll manually and never tell the user you will check back.\n\n**Retry spends again.** A regeneration costs credits a second time. The quality gate in this skill allows one automatic retry. Beyond that, say what is wrong and let the user decide.\n\n**Finishing.** upscale_image and upscale_video raise an existing asset. Offer these instead of regenerating at a larger size.\n\n**Recovering work.** get_assets lists the library newest first. get_generations fetches a generation by id. Use them to pick up earlier work instead of remaking it.\n\n## The constraint that defines this skill\n\nA thumbnail is not a small poster. It is viewed at a fraction of its size, next to competing thumbnails, often on a phone, frequently in dark mode. Every decision follows from that.\n\nThree elements maximum. One focal point. Readable in one glance at thumbnail scale.\n\n## Preconditions\n\nAsk for the video or episode title and the topic. Without the title you cannot decide what the image must not repeat.\n\nA source photo is optional. If the user supplies a face shot, use it and preserve the likeness.\n\n## Intake\n\nAsk once, bundled: the title; the platform; whether they have a face or product shot to include; and the channel's existing look if there is one. Never ask about resolution.\n\n## Composition rules\n\n**Subject scale.** The focal element occupies at least a third of the frame. A subject that reads at full size disappears at thumbnail size. When in doubt, go bigger.\n\n**Face rules.** If a face is included: crop at chest or tighter, eyes in the upper third, one clear expression, lit so the face separates from the background. A face reading a single strong emotion outperforms a neutral one. Never manufacture an expression on a supplied photo of a real person; recompose and relight instead.\n\n**Contrast and separation.** The subject must separate from the background by luminance, not only by colour. Test the idea in greyscale mentally: if subject and background merge, add a rim light, a dark vignette, or a flat colour field behind the subject.\n\n**Colour.** Two dominant colours plus one accent. High saturation reads at small size. Avoid muddy mid-tones and avoid palettes that vanish against both light and dark interface backgrounds.\n\n**Negative space.** Leave a deliberate clear zone where platform elements land: the lower right corner carries a duration badge on video platforms, and the lower edge can be overlaid by progress bars.\n\n## Text in the thumbnail\n\nPrefer no text. The title already sits next to the image, and repeating it wastes the frame.\n\nIf the user insists on text: three to four words maximum, one line if possible, heavy weight, very large, placed in the clear zone, never crossing the face. Text must add something the title does not say.\n\nBecause generated text is unreliable, deliver the image with the text zone left clear whenever the user can add type themselves, and say that is what you did and why.\n\n## Write the prompt\n\nName the subject and its scale in frame, the expression if a face is present, the background treatment, the lighting that creates separation, the two-colour palette and accent, and the clear zone. State explicitly that the composition must read at small size.\n\n## Execute\n\nCall generate_image, sixteen-by-nine for video platforms, square for podcast and playlist covers.\n\n## Quality gate\n\nJudge the result as if it were two hundred pixels wide. Reject if the subject does not read instantly, if subject and background merge in luminance, if more than three elements compete, if any generated text is misspelled or garbled, or if a supplied face has been altered.\n\nRegenerate once with a tighter crop and a larger subject.\n\n## Deliver\n\nReturn the image and one line naming the focal point and the clear zone. Offer upscale_image if the user needs a larger master.\n\n## Stop conditions\n\n| Condition | Response |\n|---|---|\n| No title or topic given | Stop and ask for the title |\n| User wants a long text block in the image | Explain the small-size constraint, offer three to four words |\n| Supplied face is too low resolution to hold at crop | Ask for a better photo or offer a non-face composition |\n| Generated text garbles twice | Deliver with the text zone clear and say why |\n"
}SHA-256: 1d9eefac9ea0e3e08d75081b3d9b9b68e884f8f519f4e9b28e0bf72c285f4660