AgentStack
SKILL verified MIT Self-run

Post Illustration Images

skill-tranfu-labs-tranfu-skills-post-illustration-images · by tranfu-labs

Generate stable platform-ready AI illustrations for WeChat official account articles, Xiaohongshu notes, and Zhihu posts. Use when the user asks for post/article/note illustrations, content images, explainer images, cover/content cards, 公众号配图, 小红书组图, 知乎配图, 帮我做配图, or 给文章画几张图. Do NOT trigger when the task is pure photography, portrait/product retouching, photoreal brand campaigns, exact long text i…

No reviews yet
0 installs
8 views
0.0% view→install

Install

$ agentstack add skill-tranfu-labs-tranfu-skills-post-illustration-images

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Post Illustration Images? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Post Illustration Images

Core Rule

Do not reduce this workflow to "analyze content -> choose template -> generate image". Stability depends on the middle layers:

content analysis
-> content type and expression need
-> suite-level style_spec
-> anchor selection
-> shot list
-> per-image content structure
-> per-image visual metaphor
-> selected visual style constraints
-> top-right brand slot reservation unless the user explicitly disables branding
-> single-image prompt without model-drawn brand or page badge
-> native Codex image generation
-> default Brand Plugin overlay using the selected style_spec slot
-> QA and fallback
-> saved assets and delivery notes

This is the mental model; the actual runnable steps are the numbered Workflow sections below.

Always read the content before choosing a visual style. Use one suite-level style for the whole image set. Vary each image only through its content structure and visual metaphor.

Ownership: edit files in the user's project output folder only. This skill creates or updates post-illustration-output// and never writes generated assets into the skill folder. Do not overwrite an existing manifest.md, prompt, or image unless the user explicitly asks to replace it or the current run owns that file.

Named artifact: PostIllustrationBundle = { output_dir, manifest.md, shot-list.md, prompts/*.md, images/(branded|unbranded|direct)/*.png, final_response_summary }.

Terminology:

  • style_id: the stable ID from references/style-index.md, for example wechat-doodle.
  • style_file: the selected human-readable Markdown style file under references/styles/.
  • style_spec: the selected machine-readable .spec.json; required for every supported production style because it owns the default brand geometry.
  • style_reference: the QA-only reference image listed in references/style-index.md.
  • selected_style_bundle: { style_id, platform, style_file, style_spec, style_reference?, brand_slot_enabled }.

Architecture Boundary

style_spec is the authority for each platform visual template. It controls canvas size, aspect ratio, fixed color values, layout, safe areas, negative constraints, and any fixed component slots such as a brand slot.

style_reference images are long-lived QA baselines for failure review. They show the expected visual presentation of a style, but they are not generation inputs and their semantic content must never be copied into new images. Whether a reference image contains a watermark, and where that watermark appears, never controls production branding.

Brand Plugin is default-on and user-disableable. It decides whether the user explicitly disabled branding and which brand asset to use. It MUST NOT decide canvas size, color palette, coordinates, or platform layout. Priority: user-explicit-disable > default enabled. Every production style_spec MUST define an enabled top-right brandSlot; when branding is not explicitly disabled, a missing or disabled slot is a blocking configuration error rather than permission to deliver an unbranded image.

The image model MUST NOT draw logos, TF, Tranfu, watermarks, page-number badges, placeholder frames, reserve boxes, or other fixed brand components. Those are either omitted or added after generation by a deterministic overlay step. If the user explicitly requests model-drawn brand text or inline logo simulation, state the QA risk and ask for confirmation before proceeding.

Supported Scope

Strong support:

  • WeChat official account body illustrations.
  • Xiaohongshu note illustrations, including cover/content carousel images.
  • Zhihu post illustrations.
  • Method, workflow, concept, comparison, checklist, boundary, and decision-flow explainers.

Conditional support:

  • Image sets requiring real product screenshots or factual data: require user-provided material. State assumptions only for non-factual illustrative placeholders.
  • Explicit style names: use the matching style_id or style_file only if it exists in references/style-index.md; unknown styles require user confirmation before fallback.
  • Explicit image count: treat it as a target or ceiling after anchor selection. Anchor quality wins; never create filler images to satisfy a quota.

Out of scope:

  • Pure photography, portrait retouching, product mockups, or photorealistic brand campaigns.
  • Tasks where exact long text inside images is mandatory. Native image generation may distort text; use short labels and retry with less text if needed.
  • Any request to route through other image-generation skills unless the user explicitly asks for them.

Required References

Use references by need, not all at once:

  • Start with references/style-index.md to identify platform and candidate style files.
  • Read the selected file under references/styles/ completely before compiling prompts.
  • Read references/brand.md unless the user explicitly disables the Brand Plugin.
  • Read references/content-structures.md when selecting per-image expression structures.
  • Read references/prompt-compiler.md before writing final generation prompts.
  • Read references/qa-checklist.md before delivery or regeneration.
  • When QA finds style drift or a regeneration is needed, inspect the selected style_reference from references/style-index.md and the selected style_spec.
  • Read references/product-design.md only when maintaining or extending this skill.

Resolve references/, assets/, and scripts/ from the skill root. User source content and generated outputs are project-relative or absolute user paths. Deterministic commands should be run from the skill root, for example cd && node scripts/check-rsvg-convert.mjs.

Workflow

MUST create and update a task list for the tasks below: Intake, Content Analysis, Select Suite-Level Style Spec, Select Anchors, Build Shot List, Compile Prompts, Generate One Image At A Time, Continue Existing Assets when used, Apply Default Brand Plugin Overlay unless explicitly disabled, QA And Fallback, Save And Deliver.

1. Intake

  1. Collect IntakeContext fields:
  • platform: one of wechat, xhs, zhihu, or unknown.
  • source_content: pasted text, file path, URL content already fetched into the conversation, or user-provided notes.
  • requested_output: body illustration, cover, carousel, continuation, overlay-only, or unknown.
  • style_id: explicit style ID or null.
  • count: positive integer or null.
  • output_dir: user-provided path or default post-illustration-output//.
  • brand_disabled: boolean, default false; set it to true only when the user explicitly requests no watermark, no logo, or no Tranfu branding.
  1. If source_content is missing, ask for the article/note/post content and stop this run until it is provided.
  1. If platform is unknown, ask one concise platform question. If the user mentions multiple platforms, split the work into one PostIllustrationBundle per platform unless they ask for only one shared draft.
  1. If style_id and platform conflict, or count conflicts with a platform format, ask one concise question before selecting style.
  1. Produce IntakeContext and enter Section 2.

Exit when:

  • platform is in {wechat, xhs, zhihu}.
  • source_content is non-empty or references an existing readable file path.
  • output_dir, requested_output, style_id, and count are explicitly set to a value or null, and brand_disabled is explicitly set to true or false.

2. Content Analysis

  1. Read the full source content.
  2. Write AnalysisSummary with:
  • main_line: 3-5 sentences.
  • core_claim: one sentence.
  • audience_value: one sentence.
  • expression_need: one value from the list below.
  • anchor_candidates: at least one visualizable content point.

Allowed expression_need values:

  • Concept explanation
  • Workflow/process
  • Before-after comparison
  • Layered framework
  • Common mistakes or boundaries
  • Decision tree
  • Checklist or summary
  • Story/state transition

Exit when AnalysisSummary.main_line, core_claim, audience_value, expression_need, and anchor_candidates[] are written.

3. Select Suite-Level Style Spec

  1. Read references/style-index.md.
  2. If the user provided style_id and it is not listed, show available candidates for the platform and ask the user to choose or approve automatic selection.
  3. If no style is specified, select the best style_id for platform and AnalysisSummary.expression_need.
  4. Read the selected style_file completely.
  5. Read the selected style_spec before building the shot list. If style_file or style_spec is missing or unreadable, stop before Section 4 and report the missing path.
  6. Set selected_style_bundle = { style_id, platform, style_file, style_spec, style_reference?, brand_slot_enabled }.
  7. If brand_disabled is false, validate that the selected style_spec defines an enabled top-right brandSlot. If it does not, stop as BLOCKER: required production brand slot unavailable.
  8. Compute brand_enabled = !brand_disabled. Production branding does not depend on whether the Style Reference contains a watermark.
  9. Happy path order is: select and read style_file/style_spec -> validate the default brand slot -> determine brand_enabled -> run rsvg-convert checks only when brand_enabled is true.
  10. If brand_enabled is true, run cd && node scripts/check-rsvg-convert.mjs:
  • If installed, continue.
  • If missing, ask whether to install the command shown by the script. Do not install without approval.
  • If the user declines or does not approve installation, deliver unbranded only when they explicitly disable branding; otherwise stop as BLOCKER: required brand overlay unavailable.
  • After an approved install attempt, run cd && node scripts/check-rsvg-convert.mjs --record-attempt.
  • If the second recorded check still fails, show the manual install command and stop as BLOCKER: required brand overlay unavailable, unless the user explicitly disables branding.

Rules:

  • Otherwise choose the best platform style based on content type and expression need.
  • Do not decide image count, aspect ratio, palette, safe area, or fixed component slots before selecting the style. These come from the selected style_file or style_spec unless the user explicitly overrides them.
  • For Zhihu, use the fixed Zhihu style unless future style files add alternatives.

Exit when selected_style_bundle and brand_enabled are set, and the selected style_file plus any required style_spec have been read.

4. Select Anchors

Choose only the content points that deserve images. Explicit count is a target or ceiling, not permission to invent filler. If count is lower than viable anchors, select the top count. If count is higher than viable anchors, ask once whether to deliver fewer justified images or provide more content; otherwise deliver only justified anchors and note the mismatch.

Good anchors include:

  • Core judgment
  • Cognitive turn
  • Input-output loop
  • Before-after contrast
  • Common mistake
  • Process breakpoint
  • Role/state change
  • Method layer
  • Trust, conversion, or handoff relationship

Exit when each selected anchor has { anchor_id, source_excerpt, rationale, priority }, every rationale is non-empty, and selected anchor count is within the explicit count or selected style default.

5. Build Shot List

The shot list is mandatory. If style_spec has not been read, return to Section 3 before writing the shot list. shot-list.md MUST use this markdown bullet order for each image:

  • Placement or sequence
  • Topic
  • One core meaning
  • Content expression structure
  • Visual metaphor
  • Main actor/object action
  • Suggested elements
  • Short labels
  • Fixed component reservations from the selected style_spec, including the default top-right brand slot unless explicitly disabled
  • QA risk

Each image MUST express exactly one core idea. If one image contains multiple ideas, split or delete. Save the finalized shot list to shot-list.md in the output folder before generating images.

GOOD:

- Placement or sequence: 01-cover
- Topic: Why the handoff between draft and visual matters
- One core meaning: A clear anchor prevents decorative filler.
- Content expression structure: Before-after comparison
- Visual metaphor: A messy note stack becomes one labeled storyboard frame.
- Main actor/object action: A hand moves one highlighted note into a clean frame.
- Suggested elements: notes, frame, arrow, small checklist marks
- Short labels: "before", "anchor", "image"
- Fixed component reservations from the selected `style_spec`: top-right brand slot from selected `style_spec`, no important content there
- QA risk: model may add extra labels or draw a fake logo

WRONG:

- One core meaning: Explain the workflow, list all mistakes, and sell the brand.

Reason: one image carries multiple core ideas. Split into separate anchors or delete lower-priority ideas.

6. Compile Prompts

For each image, combine:

  • User content anchor
  • Selected style_file
  • Per-image content structure
  • Per-image visual metaphor
  • style_spec safe areas and fixed component reservations
  • Brand Plugin status from references/brand.md
  • Native Codex generation constraints
  • Negative constraints from the style and QA references

MUST compile and generate one prompt per image. NEVER ask the image model to create an entire multi-image set in one call. Save each final single-image prompt under prompts/, for example prompts/01-cover.md, before calling native image generation.

If a style file contains batch language such as "generate the whole set", MUST treat it as planning guidance only. MUST compile and generate one image at a time.

The prompt MUST explicitly forbid model-drawn logos, TF, Tranfu, watermarks, page-number badges, placeholder frames, reserve boxes, and visible brand-slot markers. When Brand Plugin is enabled, ask the model to keep the selected style_spec brand slot free of important content so the real brand asset can be overlaid after generation. MUST NOT ask the model to visibly "reserve" or "mark" the slot.

WRONG:

Generate a five-image Xiaohongshu carousel and put the Tranfu logo in the corner of each page.

Reason: this asks for a batch output and model-drawn branding.

GOOD:

Create image 01-cover only for the selected style_id xhs-explainer-notebook. Use the selected style_file visual system and selected style_spec canvas/safe areas. Core meaning: a clear anchor prevents decorative filler. Visual metaphor: a messy note stack becomes one labeled storyboard frame. Keep text to short labels only: before, anchor, image. Leave the style_spec brand slot free of important content, but do not draw, reserve, mark, frame, or label that slot. Negative constraints: no logo, no TF, no Tranfu, no watermark, no page badge, no placeholder frame, no reserve box, no copied semantic content from the style_reference.

WRONG:

Copy the example reference image but change the words.

Reason: style_reference is QA-only; semantic content from reference images must not be copied.

WRONG:

Draw an empty dashed rectangle labeled "logo area" in the top-right corner.

Reason: visible brand-slot markers and reserve boxes are fixed components, not image-model content.

GOOD:

Keep important content away from the selected style_spec brand slot. Do not draw, label, outline, reserve, or mark the slot.

WRONG:

Put this complete paragraph inside the image: "Our new method first parses the article, then builds a reusable abstraction layer, then optimizes every downstream interaction for clarity and conversion."

Reason: exact long text inside generated images is unreliable and out of scope.

GOOD:

Use at most three short labels: parse, anchor, image.

7. Generat

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.