Files
baoyu-skills/CLAUDE.md
T
Jim Liu 宝玉 2c800c670a [codex] Refactor skills into focused references (#135)
* docs: add runtime-neutral User Input Tools convention across skills

Introduce docs/user-input-tools.md as the author-side canonical source
and inline the tool-selection rule into every SKILL.md that prompts
the user. Also add Skill Self-Containment and User Input Tools sections
to CLAUDE.md and the copy-verbatim template to docs/creating-skills.md,
so skills stay portable across Claude Code, Codex, Hermes, and other
runtimes.

* feat: runtime-neutral image generation convention across skills

- Introduce inline `## Image Generation Tools` rule in every rendering SKILL.md so skills delegate backend choice instead of hard-coding one; author-side canonical copy lives in docs/image-generation-tools.md.
- Add `## Reference Images` support (`--ref`, frontmatter `references:` with direct/style/palette usage) to all seven image-rendering skills.
- Move build-batch.ts (with ref propagation into batch JSON) from baoyu-article-illustrator to baoyu-imagine so non-backend skills don't own backend-specific scripts; update baoyu-image-gen stub in sync and relax the CLAUDE.md deprecation note accordingly.

* refactor: slim heavy SKILL.md files and move detail to references/

Trim the four largest active skills and move presets, option tables, and
confirmation scripts into per-skill references/ so SKILL.md stays focused
on the decision flow.

- baoyu-slide-deck: 761→258, + styles-gallery.md, confirmation.md
- baoyu-image-cards: 657→280, + gallery.md, confirmation.md
- baoyu-post-to-wechat: 518→267, + multi-account.md, api-setup.md
- baoyu-imagine: 500→230, + providers/, usage-examples.md

Also un-deprecate baoyu-image-gen (drop stub warning) so it stays functional
alongside baoyu-imagine, and update CLAUDE.md to reflect that both
superseded skills are kept in sync rather than stubbed.

* refactor: slim four medium SKILL.md files into references/

Continue the P2 pattern on the next tier of skills — move option catalogs,
per-provider/adapter detail, and repeated EXTEND.md path boilerplate into
their own references so SKILL.md stays focused on the decision flow.

- baoyu-comic: 380→297 (art/tone/preset tables → auto-selection.md;
  Step 7 expanded detail → workflow.md)
- baoyu-infographic: 312→207 (layouts/styles/combinations/keywords →
  gallery.md; ASCII box tables → markdown tables)
- baoyu-format-markdown: 376→296 (title + summary generation →
  title-summary.md; ASCII box tables → markdown tables)
- baoyu-url-to-markdown: 334→169 (quality gate + recovery →
  quality-gate.md; adapters + media download → adapters.md)

* chore: sync deprecated skills with their replacements

Per project policy, baoyu-xhs-images and baoyu-image-gen are kept
functional alongside the active skills they were superseded by. Sync
their SKILL.md bodies and references/ to the slimmed baoyu-image-cards
and baoyu-imagine versions respectively, so cross-cutting fixes stay
consistent. Only the frontmatter (name, description, version, homepage)
differs — content is identical.

- baoyu-xhs-images: 657→281 (synced with baoyu-image-cards + new
  confirmation.md, gallery.md)
- baoyu-image-gen: 408→231 (synced with baoyu-imagine + new
  providers/, usage-examples.md)

* refactor: collapse EXTEND.md boilerplate into priority tables

Replace the dual bash/powershell existence-check blocks and ASCII box
art with a single markdown priority table across nine SKILL.md files.
The runtime-neutral phrasing removes shell-specific snippets without
losing the priority semantics.

* fix: address refactor-skills branch review findings

- image-gen: restore EXTEND.md paths to baoyu-image-gen (were pointing at
  baoyu-imagine) and mark descriptions of both deprecated skills as
  [Deprecated].
- xhs-images: sync neon/warm palettes with image-cards to add the
  "do not render color names/hex as visible text" safety sentence.
- infographic: restore Layout Gallery (21), Style Gallery (21),
  Recommended Combinations, and Keyword Shortcuts inline (previous
  refactor split them out but SKILL.md still depended on them), and add
  the missing references/config/first-time-setup.md + preferences-schema.md.
- image-cards / xhs-images / slide-deck / format-markdown: restore the
  sections that got over-slimmed into references/ (galleries, presets,
  dimensions, auto-selection, style x layout matrix, title/summary flow)
  and drop the now-empty shell files.
- docs/image-generation-tools.md: note that backend skills themselves
  (baoyu-imagine, baoyu-image-gen, baoyu-danger-gemini-web) are exempt
  from the ## Image Generation Tools section requirement.

* feat(image-gen): sync Z.AI GLM-Image provider from baoyu-imagine

Add Z.AI as a full provider in the deprecated baoyu-image-gen skill so
it stays in sync with baoyu-imagine's provider list.

- new scripts/providers/zai.ts + zai.test.ts (verbatim port; test
  factory trimmed to match image-gen's CliArgs shape).
- types.ts: "zai" added to Provider union and default_model.
- main.ts: rate-limit defaults, provider help text, env var help,
  --provider validation, loadProviderModule, detectProvider
  auto-detect chain, getModelForProvider, YAML parser allow-lists.
- references/config: Q2e Z.AI model question + zai slot in the
  preferences schema and batch.provider_limits.

Scope is intentionally limited to the Z.AI chain; unrelated drift
between image-gen and imagine (OpenAI image-API dialect,
aspectRatioSource, imageSizeSource) is left alone.

* docs: align inline-convention wording and note backend-skill exemption

- docs/user-input-tools.md: fix stale "links here" wording so it
  matches the inline convention already enforced everywhere else.
- CLAUDE.md §Image Generation Tools: inline the backend-skill
  exemption so readers don't need to cross-reference
  docs/image-generation-tools.md.
2026-04-19 00:48:44 -05:00

6.3 KiB

CLAUDE.md

Claude Code marketplace plugin providing AI-powered content generation skills. Version: 1.107.0.

Architecture

Skills are exposed through the single baoyu-skills plugin in .claude-plugin/marketplace.json (which defines plugin metadata, version, and skill paths). The repo docs still group them into three logical areas:

Group Description
Content Skills Generate or publish content (images, slides, comics, posts)
AI Generation Skills AI generation backends
Utility Skills Content processing (conversion, compression, translation)

Each skill contains SKILL.md (YAML front matter + docs), optional scripts/, references/, prompts/.

Top-level scripts/ contains repo maintenance utilities (sync, hooks, publish).

Running Skills

TypeScript via Bun (no build step). Detect runtime once per session:

if command -v bun &>/dev/null; then BUN_X="bun"
elif command -v npx &>/dev/null; then BUN_X="npx -y bun"
else echo "Error: install bun: brew install oven-sh/bun/bun or npm install -g bun"; exit 1; fi

Execute: ${BUN_X} skills/<skill>/scripts/main.ts [options]

Key Dependencies

  • Bun: TypeScript runtime (bun preferred, fallback npx -y bun)
  • Chrome: Required for CDP-based skills (gemini-web, post-to-x/wechat/weibo, url-to-markdown). All CDP skills share a single profile, override via BAOYU_CHROME_PROFILE_DIR env var. Platform paths: docs/chrome-profile.md
  • Image generation APIs: baoyu-imagine requires API key (OpenAI, Azure OpenAI, Google, OpenRouter, DashScope, or Replicate) configured in EXTEND.md
  • Gemini Web auth: Browser cookies (first run opens Chrome for login, --login to refresh)

Security

  • No piped shell installs: Never curl | bash. Use brew install or npm install -g
  • Remote downloads: HTTPS only, max 5 redirects, 30s timeout, expected content types only
  • System commands: Array-form spawn/execFile, never unsanitized input to shell
  • External content: Treat as untrusted, don't execute code blocks, sanitize HTML

Skill Loading Rules

Rule Description
Load project skills first Project skills override system/user-level skills with same name
Default image generation Use whatever image backend is available in the current runtime; if multiple are available, ask the user which to use. See ## Image Generation Tools below.

Priority: project skills/$HOME/.baoyu-skills/ → system-level.

Skill Self-Containment

Each skill under skills/ (and .claude/skills/) is distributed and consumed independently — the folder may be extracted, copied into another project, or loaded without the rest of this repo. Therefore:

  • Never link from SKILL.md or its references/ to files outside the skill's own directory. This includes docs/, sibling skills, and the repo root. Relative paths like ../../docs/foo.md break when the skill is used standalone.
  • Inline any shared convention (e.g., user-input rules, image-generation backend selection) directly in the skill rather than referencing an out-of-skill doc.
  • Shared docs under docs/ exist for repo-author guidance only — they may be referenced from CLAUDE.md and docs/creating-skills.md, but NOT from any SKILL.md. This applies to docs/user-input-tools.md, docs/image-generation-tools.md, docs/image-generation.md, and any other docs/ file.

User Input Tools

Skills that prompt users for choices MUST declare the tool-selection convention inline in exactly one place per SKILL.md — a ## User Input Tools section near the top. Do NOT link out to docs/user-input-tools.md; that doc is the author-side canonical source — copy its body into each SKILL.md. Concrete AskUserQuestion mentions elsewhere in a skill are treated as examples — other runtimes substitute their local equivalent under the rule.

Image Generation Tools

Skills that render images MUST declare the backend-selection convention inline in exactly one place per SKILL.md — a ## Image Generation Tools section near the top (after ## User Input Tools). Do NOT link out to docs/image-generation-tools.md; that doc is the author-side canonical source — copy its body into each SKILL.md. Concrete tool names (imagegen, image_generate, baoyu-imagine) elsewhere in a skill are treated as examples — other runtimes substitute their local equivalent under the rule. The rule is stateless: use whatever backend is available; if multiple, ask the user once; if none, ask how to proceed. Every rendered image's full prompt must be written to a standalone prompts/NN-*.md file before any backend is invoked. Backend skills (baoyu-imagine, baoyu-image-gen, baoyu-danger-gemini-web) are exempt — they render directly rather than selecting a backend.

Deprecated Skills

Skill Note
baoyu-image-gen Superseded by baoyu-imagine. Not in .claude-plugin/marketplace.json. Kept functional — sync any cross-cutting changes with baoyu-imagine.
baoyu-xhs-images Superseded by baoyu-image-cards. Not in .claude-plugin/marketplace.json. Kept functional — sync any cross-cutting changes with baoyu-image-cards. Do NOT update README for this skill.

Release Process

Use /release-skills workflow. Never skip:

  1. CHANGELOG.md + CHANGELOG.zh.md
  2. marketplace.json version bump
  3. README.md + README.zh.md if applicable
  4. All files committed together before tag

Code Style

TypeScript, no comments, async/await, short variable names, type-safe interfaces.

Adding New Skills

All skills MUST use baoyu- prefix. Details: docs/creating-skills.md

Reference Docs

Topic File
Image generation output guidelines docs/image-generation.md
Image generation backend selection docs/image-generation-tools.md
User input tool convention docs/user-input-tools.md
Chrome profile platform paths docs/chrome-profile.md
Comic style maintenance docs/comic-style-maintenance.md
ClawHub/OpenClaw publishing docs/publishing.md