一键导入
add-image
Add an image to a blog post (cover, middle, or footer). Arguments: <image-path> [post-date] [cover|middle|footer]
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Add an image to a blog post (cover, middle, or footer). Arguments: <image-path> [post-date] [cover|middle|footer]
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Find content files missing their Spanish (.es.md) translation. Use when asked about translation coverage or after adding new English content.
List blog posts with title, date, tags, and draft status. Optional argument: [tag or year] to filter
Create a new blog post from the project template. Argument: <topic>
Create a new reading note from the project template. Argument: <book-title> by <author>
Create a new talk page (EN + ES) and optionally scaffold a Marp slide deck. Argument: <talk-title> [--deck]
Translate content between English and Spanish. Argument: <file-path>
| name | add-image |
| description | Add an image to a blog post (cover, middle, or footer). Arguments: <image-path> [post-date] [cover|middle|footer] |
| allowed-tools | Read, Write, Edit, Glob, Bash(bash scripts/optimize-image.sh:*), Bash(scripts/optimize-image.sh:*), Bash(rm *), Bash(mkdir *), Bash(zola build) |
| argument-hint | <image-path> [post-date] [cover|middle|footer] |
Parse the arguments: <image-path> [post-slug-or-date] [placement]
image-path (required): path to the source image file (absolute or relative to project root)post-slug-or-date (optional): date prefix like 2026-02-07 or full slug. If omitted, use the most recent blog post by date.placement (optional): cover, middle, or footer. If omitted, ask the user.Resolve the target blog post:
content/blog/ by date prefix or slugOptimize and place the image (always optimize by default, never copy a raw phone photo in):
static/images/blog/YYYY-MM-DD/ if it doesn't existbash scripts/optimize-image.sh <source> static/images/blog/YYYY-MM-DD/{placement}.webp --width <W> --quality 85
cover = 1600 (min, ≥820px tall: the template builds a 1440w retina hero from it; bump width for ultra-wide sources), middle/footer = 1200Update the blog post based on placement (all images are .webp). If the slot currently points at the shared placeholder /images/blog/placeholder.webp, replace that reference with the real per-date path:
static_thumbnail = "/images/blog/YYYY-MM-DD/cover.webp" in front matter [extra] (newer posts do not add a body ![cover] line; the template renders the hero from static_thumbnail) near the middle of the body (or ask user where to place it) as the last content lineVerify the image path resolves correctly with zola build
The invocation arguments (<image-path> [post-date] [cover|middle|footer]) are provided with this skill call.