Best for
- Use when user asks to create "resume image", "portfolio resume", "简历图", "简历海报", or "个人简历视觉设计".
OpenSenseNova/SenseNova-Skills/skills/sn-image-resume/SKILL.md
Use it for engineering and design tasks; the detail page covers purpose, installation, and practical steps.
Decision brief
Resume image generation scene skill (tier 1), relying on the sn-text-optimize and sn-image-generate tools provided by sn-image-base (tier 0).
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/OpenSenseNova/SenseNova-Skills --skill "skills/sn-image-resume"Inspect the Agent Skill "sn-image-resume" from https://github.com/OpenSenseNova/SenseNova-Skills/blob/24abfbb1eb5168027be74ecc18f2e5ac55890f5d/skills/sn-image-resume/SKILL.md at commit 24abfbb1eb5168027be74ecc18f2e5ac55890f5d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Extract resumecontent, optional style, aspectratio (default 9:16), imagesize (default 2k), and outputmode (default friendly) from the user request 2. Validate that resumecontent is non-empty and contains enough resume information to generate a meaningful page 3. Validate aspe…
1. Extract resumecontent, optional style, aspectratio (default 9:16), imagesize (default 2k), and outputmode (default friendly) from the user request 2. Validate that resumecontent is non-empty and contains enough resume information to generate a meaningful page 3. Validate aspe…
Worker Agent receives resumecontent, style, aspectratio, imagesize, outputmode, and the working directory of this skill (SKILLDIR).
1. Generate taskid using timestamp format YYYYMMDDHHMMSS 2. Create temporary directory: /tmp/openclaw/sn-image-resume// as TEMPDIR 3. Persist normalized inputs:
Use prompts/resume.md as the system prompt and call sn-text-optimize to convert the user resume content into a detailed image generation prompt.
Permission review
The documentation includes network, browsing, or remote request actions.
SN_BASE_URL="https://your-api-endpoint.com/v1"The documentation asks the agent to create, modify, or delete local files.
Create temporary directory: `/tmp/openclaw/sn-image-resume/<task_id>/` as `TEMP_DIR`The documentation asks the agent to run terminal commands or scripts.
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-text-optimize \The documentation asks the agent to run terminal commands or scripts.
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-image-generate \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 86/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 4,855 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Resume image generation scene skill (tier 1), relying on the sn-text-optimize and sn-image-generate tools provided by sn-image-base (tier 0).
Features:
prompts/resume.mdsn-image-generate| Parameter | Type | Default Value | Description |
|---|---|---|---|
resume_content | string | Required | Resume text provided by the user in conversation, including name, profile, education, experience, skills, projects, contact details, etc. |
style | string | Optional | User-specified visual style, tone, color palette, profession aesthetic, or reference mood. May be embedded in resume_content. |
aspect_ratio | string | 9:16 | Output aspect ratio. Allowed values: 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 1:1, 16:9, 9:16, 21:9, 9:21. Default is 9:16 (vertical) because the template is a tall stacked portfolio-resume page. |
image_size | string | 2k | Image size preset, 1k or 2k. |
output_mode | string | friendly | Output mode: friendly or verbose. |
All API calls in this skill are executed through the sn_agent_runner.py of the sn-image-base skill, with authentication parameters using default values (CLI > environment variables > built-in defaults), so they do not need to be passed explicitly in normal use.
| Call Type | Tool | Authentication Parameters | Description |
|---|---|---|---|
| LLM | sn-text-optimize | Default reads SN_TEXT_API_KEY -> SN_CHAT_API_KEY -> SN_API_KEY | Converts user resume text into a detailed image generation prompt using prompts/resume.md as the system prompt |
| Image Generation | sn-image-generate | Default reads SN_IMAGE_GEN_API_KEY -> SN_API_KEY | Generates the final resume image |
If all capabilities use the same gateway, configure only:
SN_BASE_URL="https://your-api-endpoint.com/v1"
SN_API_KEY="your-api-key"
When encountering MissingApiKeyError or needing to specify a model: pass parameters explicitly via CLI. See $SN_IMAGE_BASE/references/api_spec.md.
$SN_IMAGE_BASE path explanation: $SN_IMAGE_BASE is the installation directory of the sn-image-base skill (SKILL.md exists). The agent can locate this path by skill name sn-image-base.
This skill uses a two-tier agent architecture:
| Role | Responsibility |
|---|---|
| Main Agent | Receive user request, normalize parameters, send preflight, start Worker, collect result, and send final text/image to user |
| Worker Agent | Execute prompt generation and image generation, then return structured JSON |
Responsibility Boundaries:
sn-image-base, without spawning nested subagentsresume_content, optional style, aspect_ratio (default 9:16), image_size (default 2k), and output_mode (default friendly) from the user requestresume_content is non-empty and contains enough resume information to generate a meaningful pageaspect_ratio against the allowed values: 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 1:1, 16:9, 9:16, 21:9, 9:21. If the user-provided value is not in this list, inform the user and fall back to the default 9:16"Using sn-image-resume skill to generate a resume image, please wait..."status=ok: send a short summary and the generated imagestatus=error: report the real error field content to the userWorker Agent receives resume_content, style, aspect_ratio, image_size, output_mode, and the working directory of this skill (SKILL_DIR).
task_id using timestamp format YYYYMMDD_HHMMSS/tmp/openclaw/sn-image-resume/<task_id>/ as TEMP_DIRecho "$RESUME_CONTENT" > "$TEMP_DIR/resume-content.txt"
echo "$STYLE" > "$TEMP_DIR/style.txt"
Use prompts/resume.md as the system prompt and call sn-text-optimize to convert the user resume content into a detailed image generation prompt.
USER_PROMPT=$(cat << EOF
Resume content:
$RESUME_CONTENT
Optional style instruction:
${STYLE:-No explicit style instruction. Infer an appropriate professional visual style from the resume content.}
Task:
Convert the resume content into a complete text-to-image prompt for a tall portfolio-resume image.
Follow the fixed layout, language, content mapping, typography, panel, and style translation rules in the system prompt.
Return only the final image generation prompt. Do not include explanations, markdown fences, or alternative options.
EOF
)
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-text-optimize \
--system-prompt-path "$SKILL_DIR/prompts/resume.md" \
--user-prompt "$USER_PROMPT" \
--output-format json
Parse JSON stdout and extract result as generation_prompt. If the process exits non-zero, returns invalid JSON, or result is empty, return status=error with the actual error.
Persist output:
echo "$GENERATION_PROMPT" > "$TEMP_DIR/generation-prompt.txt"
Generate the final image using sn-image-base's sn-image-generate tool.
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-image-generate \
--prompt "$GENERATION_PROMPT" \
--image-size "$IMAGE_SIZE" \
--aspect-ratio "$ASPECT_RATIO" \
--save-path "$TEMP_DIR/resume.png" \
--output-format json
Parse JSON stdout. If generation fails, return status=error with the actual error. The generated image path is $TEMP_DIR/resume.png.
sn-text-optimize fails or returns an empty result, stop and report the real errorsn-image-generate fails, stop and report the real errorAfter Worker Agent completes, its last message must be and only be the following JSON string (bare JSON, no code fences, no preceding or trailing text).
Normal Flow:
{
"status": "ok",
"need_main_agent_send": true,
"output_mode": "friendly|verbose",
"image": "$TEMP_DIR/resume.png",
"generation_prompt": "<included only when output_mode=verbose>",
"timing": {
"total_elapsed_seconds": 25.12,
"prompt_generation": { "elapsed_seconds": 5.23, "model": "sensenova-6.7-flash-lite" },
"image_generation": { "elapsed_seconds": 19.89, "model": "sn_image_model" }
}
}
Error Flow:
{
"status": "error",
"error": "<Actual error information>"
}
Rules:
status=ok must contain need_main_agent_send: truegeneration_prompt must contain when output_mode=verbose; omit it in friendly modetiming.prompt_generation.elapsed_seconds and timing.prompt_generation.model are read from sn-text-optimize JSON outputtiming.image_generation.elapsed_seconds is read from sn-image-generate JSON outputtiming.image_generation.model is fixed to "sn_image_model" because sn-image-generate does not return a model fieldText Summary: one sentence describing that the resume image has been generated, no more than 50 words.
Image: send the single generated resume image.
Resume image generated
---
Aspect ratio: <aspect_ratio>
Image size: <image_size>
---
Generation prompt:
<generation_prompt>
---
Time statistics: Total <total>s | Prompt generation <t>s | Image generation <t>s
---
Image:
<image path>
sn-image-base → sn-text-optimize, sn-image-generateprompts/resume.mdprompts/resume.md - Fixed portfolio-resume layout and language/content mapping rules../sn-image-base/SKILL.md - Base-layer image/text tool behavior../sn-image-base/references/api_spec.md - CLI parameter detailsAlternatives
HKUDS/Vibe-Trading
Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.
AI-Unified-Process/marketplace
Creates Vaadin Browserless server-side unit tests for Vaadin views covering navigation, component interactions, form validation, grid operations, and notifications. Use when the user asks to "write Browserless tests", "write Vaadin UI unit tests", "unit test a Vaadin view without a browser", "create view tests with the official Vaadin testing framework", or mentions Browserless testing, SpringBrowserlessTest, browserless-test-junit6, UI Unit Testing, or server-side Vaadin testing.
freenet/freenet-agent-skills
Build and maintain decentralized applications on Freenet using river as a template. Guides through designing contracts (shared state), delegates (private state), and UI, and through upgrading a live dApp safely. Use when user wants to create a new Freenet dApp, design contract state, implement delegates, build a Freenet-connected UI, OR upgrade an existing dApp — bump freenet-stdlib, ship a new contract/delegate version (v2), fix a bug that re-keys the WASM, or migrate state across a contract/de
mgiovani/cc-arsenal
Multi-agent review team: architecture, security, performance, testing, style, docs/UX, plus an adversary that cross-examines the other 6, for security-sensitive, architectural, or large PRs (15+ files) where a single-agent pass risks missing cross-cutting issues. Use for auth/payments/PII changes, schema/pattern changes, compliance sign-off, or when asked to 'get the review team on this' / 'multi-agent review' / 'thorough review before merge'. For a standard PR or a quick pre-merge check, use /r