Use this skill to place the Ylang Labs logo on blog artwork without cropping or resizing the artwork itself.
Use black logos on light local backgrounds and white logos on dark local backgrounds. If the user asks for a specific color, pass --logo black or --logo white.
-
Identify each target image.
Default Ylang Labs blog targets are:
public/static/images/blogs/<slug>/source-artwork.png (preferred when present), or source-image.png
public/static/images/blogs/<slug>/blogHeader.png
public/static/images/blogs/<slug>/cardImage.png when preparing a complete cover package
When the user asks to watermark a blog, a blog slug, blog artwork, or a provided blog source image, apply the watermark to the source master and requested derivatives. A crop near the edge can remove the source watermark, so inspect each derivative and add one lower-left watermark pass only when needed. Never leave duplicate marks.
Source images are uncropped. Blog headers are already cropped. Do not crop, resize, or reframe either one when applying the watermark.
-
Create the local source-master backup.
If the source master will be overwritten, first preserve the unwatermarked version as:
public/static/images/blogs/<slug>/source-artwork-no-watermark.png, or
public/static/images/blogs/<slug>/source-image-no-watermark.png
If the working source master is already watermarked, recover the unwatermarked source from the last clean source available, such as git history, another source artwork file, or a user-provided original. If no clean source is available, tell the user instead of creating a backup that still contains the watermark.
Keep this backup untracked and out of commits. It exists only for local rollback and future crop/watermark adjustments.
-
Inspect the target image when composition matters.
Prefer a clean corner where the logo does not cover a face, diagram label, important object, or dense text. Use the lower-left edge by default unless the user or existing art direction calls for a different corner.
If the image already has a Ylang Labs logo, do not add a duplicate mark unless the user explicitly asks for a second placement or replacement.
-
Run the script.
node .agents/skills/blog-logo-watermark/scripts/apply-logo-watermark.mjs \
--input public/static/images/blogs/<slug>/source-artwork.png \
--output public/static/images/blogs/<slug>/source-artwork.png \
--corner lower-left \
--logo auto
For a non-destructive preview, write to a temp output path instead of overwriting the input.
-
Repeat for derived cover assets that do not retain the source mark.
node .agents/skills/blog-logo-watermark/scripts/apply-logo-watermark.mjs \
--input public/static/images/blogs/<slug>/blogHeader.png \
--output public/static/images/blogs/<slug>/blogHeader.png \
--corner lower-left \
--logo auto
Use the same command for cardImage.png when the card crop excludes the source watermark. Inspect first and never add a second mark to a derivative that already contains one.
-
Verify the outputs.
- Confirm dimensions stayed unchanged.
- Visually inspect both images.
- Confirm the chosen black/white logo has readable contrast.
- Re-run with
--logo black, --logo white, a different --corner, or a smaller --scale if the automatic result covers important content.
- Confirm the matching
<source-stem>-no-watermark.png exists locally when a source master was overwritten, and confirm it is not staged.