Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Baoyu Translate

v1.103.2

Translates articles and documents between languages with three modes - quick (direct), normal (analyze then translate), and refined (analyze, translate, revi...

2· 1.5k·39 current·39 all-time
byJim Liu 宝玉@jimliu

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for jimliu/baoyu-translate.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Baoyu Translate" (jimliu/baoyu-translate) from ClawHub.
Skill page: https://clawhub.ai/jimliu/baoyu-translate
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install baoyu-translate

ClawHub CLI

Package manager switcher

npx clawhub@latest install baoyu-translate
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the code and SKILL.md. The included scripts implement markdown chunking and CLI glue (bun/npx usage); requiring bun or npx is appropriate for the provided TypeScript/Bun scripts. No unrelated credentials, binaries, or surprising packages are requested.
Instruction Scope
SKILL.md explicitly reads/writes configuration (EXTEND.md) in project/home/XDG locations, saves multiple intermediate files (01-analysis.md → translation.md), may fetch a URL input and materialize it, and can read glossary_files by absolute path. These file and network operations are expected for a translator but are scope-expanding (writes/renames project/home files and can read user-specified filesystem paths). The first-time setup is blocking and will create EXTEND.md in a user- or project-chosen location.
Install Mechanism
There is no remote download/install step in the manifest; the packaged scripts and a small locked dependency set (markdown-it) are included. The skill is instruction-only for installation but ships runnable scripts; requiring bun or npx is proportional and consistent.
Credentials
No credentials are requested. The runtime uses standard env vars like XDG_CONFIG_HOME and HOME to locate/save EXTEND.md; this is reasonable but means the skill will read/write under user home directories. The ability to load glossary_files from arbitrary absolute paths means a config could cause the skill to read arbitrary files—this requires user-supplied config and is not hidden, but users should avoid pointing glossary_files at sensitive paths.
Persistence & Privilege
always:false (normal). The skill persists preferences and outputs to disk (creating directories, writing EXTEND.md, saving intermediate files, and renaming existing output dirs to backups). It does not request system-wide or other-skills config changes, but it will modify files in project/home locations and create backups of existing output directories.
Assessment
This skill appears to be a legitimate translation tool. Before installing or running it, review where it will save files: EXTEND.md (user or project path), output directories next to your source files, and automatic backups of existing output directories. Do not set EXTEND.md or glossary_files to point at sensitive system files or secrets (e.g., /etc/, ~/.ssh/, or other credential storage). If you run the included scripts, ensure you trust the local environment's bun/npx tooling and review the two TypeScript files (scripts/) if you will execute them in a shared or sensitive environment. Finally, be aware the skill may fetch content from URLs you provide (it will materialize fetched content to disk).

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Any binbun, npx
latestvk9705evn4c1v80p1tt0ppk0gq9858cwr
1.5kdownloads
2stars
9versions
Updated 9h ago
v1.103.2
MIT-0

Translator

Three-mode translation skill: quick for direct translation, normal for analysis-informed translation, refined for full publication-quality workflow with review and polish.

User Input Tools

When this skill prompts the user, follow this tool-selection rule (priority order):

  1. Prefer built-in user-input tools exposed by the current agent runtime — e.g., AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent.
  2. Fallback: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.
  3. Batching: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.

Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.

Script Directory

Scripts in scripts/ subdirectory. {baseDir} = this SKILL.md's directory path. Resolve ${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun. Replace {baseDir} and ${BUN_X} with actual values.

ScriptPurpose
scripts/main.tsCLI entry point. Default action splits markdown into chunks; also supports explicit chunk subcommand
scripts/chunk.tsMarkdown chunking implementation used by main.ts and kept compatible for direct invocation

Preferences (EXTEND.md)

Check EXTEND.md in priority order — the first one found wins:

PriorityPathScope
1.baoyu-skills/baoyu-translate/EXTEND.mdProject
2${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-translate/EXTEND.mdXDG
3$HOME/.baoyu-skills/baoyu-translate/EXTEND.mdUser home
ResultAction
FoundRead, parse, apply. On first use in session, briefly remind: "Using preferences from [path]. You can edit EXTEND.md to customize glossary, audience, etc."
Not foundMUST run first-time setup (see below) — do NOT silently use defaults

EXTEND.md supports: default target language, default mode, target audience, custom glossaries (inline or file path), translation style, chunk settings.

Schema: references/config/extend-schema.md.

First-Time Setup (BLOCKING)

CRITICAL: When EXTEND.md is not found, you MUST run the first-time setup before ANY translation. This is a BLOCKING operation.

Full reference: references/config/first-time-setup.md

Use AskUserQuestion with all questions (target language, mode, audience, style, save location) in ONE call. After user answers, create EXTEND.md at the chosen location, confirm "Preferences saved to [path]", then continue.

Defaults

All configurable values in one place. EXTEND.md overrides these; CLI flags override EXTEND.md.

SettingDefaultEXTEND.md keyCLI flagDescription
Target languagezh-CNtarget_language--toTranslation target language
Modenormaldefault_mode--modeTranslation mode
Audiencegeneralaudience--audienceTarget reader profile
Stylestorytellingstyle--styleTranslation style preference
Chunk threshold4000chunk_thresholdWord count to trigger chunked translation
Chunk max words5000chunk_max_wordsMax words per chunk

Modes

ModeFlagStepsWhen to Use
Quick--mode quickTranslateShort texts, informal content, quick tasks
Normal--mode normal (default)Analyze → TranslateArticles, blog posts, general content
Refined--mode refinedAnalyze → Translate → Review → PolishPublication-quality, important documents

Default mode: Normal (can be overridden in EXTEND.md default_mode setting).

Style presets — control the voice and tone of the translation (independent of audience):

ValueDescriptionEffect
storytellingEngaging narrative flow (default)Draws readers in, smooth transitions, vivid phrasing
formalProfessional, structuredNeutral tone, clear organization, no colloquialisms
technicalPrecise, documentation-styleConcise, terminology-heavy, minimal embellishment
literalClose to original structureMinimal restructuring, preserves source sentence patterns
academicScholarly, rigorousFormal register, complex clauses OK, citation-aware
businessConcise, results-focusedAction-oriented, executive-friendly, bullet-point mindset
humorousPreserves and adapts humorWitty, playful, recreates comedic effect in target language
conversationalCasual, spoken-likeFriendly, approachable, as if explaining to a friend
elegantLiterary, polished proseAesthetically refined, rhythmic, carefully crafted word choices

Custom style descriptions are also accepted, e.g., --style "poetic and lyrical".

Auto-detection:

  • "快翻", "quick", "直接翻译" → quick mode
  • "精翻", "refined", "publication quality", "proofread" → refined mode
  • Otherwise → default mode (normal)

Upgrade prompt: After normal mode completes, display:

Translation saved. To further review and polish, reply "继续润色" or "refine".

If user responds, continue with review → polish steps (same as refined mode Steps 4-6 in refined-workflow.md) on the existing output.

Audience presets:

ValueDescriptionEffect
generalGeneral readers (default)Plain language, more translator's notes for jargon
technicalDevelopers / engineersLess annotation on common tech terms
academicResearchers / scholarsFormal register, precise terminology
businessBusiness professionalsBusiness-friendly tone, explain tech concepts

Custom audience descriptions are also accepted, e.g., --audience "AI感兴趣的普通读者".

Workflow

Step 1: Load Preferences

1.1 Check EXTEND.md (see Preferences section above)

1.2 Load built-in glossary for the language pair if available:

1.3 Merge glossaries: EXTEND.md glossary (inline) + EXTEND.md glossary_files (external files, paths relative to EXTEND.md location) + built-in glossary + --glossary file (CLI overrides all)

Step 2: Materialize Source & Create Output Directory

Materialize source (file as-is, inline text/URL → save to translate/{slug}.md), then create output directory: {source-dir}/{source-basename}-{target-lang}/. Detect source language if --from not specified.

Full details: references/workflow-mechanics.md

Output directory contents (all intermediate and final files go here):

FileModeDescription
translation.mdAllFinal translation (always this name)
01-analysis.mdNormal, RefinedContent analysis (domain, tone, terminology)
02-prompt.mdNormal, RefinedAssembled translation prompt
03-draft.mdRefinedInitial draft before review
04-critique.mdRefinedCritical review findings (diagnosis only)
05-revision.mdRefinedRevised translation based on critique
chunks/ChunkedSource chunks + translated chunks

Step 3: Assess Content Length

Quick mode does not chunk — translate directly regardless of length. Before translating, estimate word count. If content exceeds chunk threshold (default 4000 words), proactively warn: "This article is ~{N} words. Quick mode translates in one pass without chunking — for long content, --mode normal produces better results with terminology consistency." Then proceed if user doesn't switch.

For normal and refined modes:

ContentAction
< chunk thresholdTranslate as single unit
>= chunk thresholdChunk translation (see Step 3.1)

3.1 Long Content Preparation (normal/refined modes, >= chunk threshold only)

Before translating chunks:

  1. Extract terminology: Scan entire document for proper nouns, technical terms, recurring phrases
  2. Build session glossary: Merge extracted terms with loaded glossaries, establish consistent translations
  3. Split into chunks: Use ${BUN_X} {baseDir}/scripts/main.ts <file> [--max-words <chunk_max_words>] [--output-dir <output-dir>]
    • Parses markdown blocks (headings, paragraphs, lists, code blocks, tables, etc.)
    • Splits at markdown block boundaries to preserve structure
    • If a single block exceeds the threshold, falls back to line splitting, then word splitting
  4. Assemble translation prompt:
    • Main agent reads 01-analysis.md (if exists) and assembles shared context using Part 1 of references/subagent-prompt-template.md — inlining: target style, content background, merged glossary, and translation challenges
    • Save as 02-prompt.md in the output directory (shared context only, no task instructions)
  5. Draft translation via subagents (if Agent tool available):
    • Spawn one subagent per chunk, all in parallel (Part 2 of the template)
    • Each subagent reads 02-prompt.md for shared context, receives chunk position info (chunk N of M + brief context of where it sits in the argument), translates its chunk, saves to chunks/chunk-NN-draft.md
    • Consistency is guaranteed by the shared 02-prompt.md (glossary, figurative language mapping, comprehension challenges, source voice, and translation challenges from analysis)
    • If no chunks (content under threshold): spawn one subagent for the entire source file
    • If Agent tool is unavailable, translate chunks sequentially inline using 02-prompt.md
  6. Merge: Once all subagents complete, combine translated chunks in order. If chunks/frontmatter.md exists, prepend it. Save as 03-draft.md (refined) or translation.md (normal)
  7. All intermediate files (source chunks + translated chunks) are preserved in chunks/

After chunked draft is merged, return control to main agent for critical review, revision, and polish (Step 4).

Step 4: Translate & Refine

Translation principles (apply to all modes):

  • Rewrite, not translate: Rewrite content into natural, engaging target language as if a skilled native writer composed it from scratch. Quality test: "Does this read like it was originally written in the target language?"
  • Accuracy first: Facts, data, and logic must match the original exactly
  • Natural flow: Use idiomatic target language word order. Break long source sentences into shorter, natural ones. Interpret metaphors and idioms by intended meaning, not word-for-word
  • Terminology: Use standard translations consistently. First occurrence of specialized terms: annotate with original in parentheses
  • Preserve format: Keep all markdown formatting (headings, bold, italic, images, links, code blocks)
  • Proactive interpretation: For jargon or concepts the target audience may lack context for, add concise explanations in bold parentheses (**解释**). Keep annotations few — only where genuinely needed for comprehension
  • Frontmatter: If source has YAML frontmatter, rename source-metadata fields with source prefix (camelCase: urlsourceUrl, titlesourceTitle, etc.), add translated values as new top-level fields (skip title if body has H1), keep other fields as-is

Quick Mode

Translate directly → save to translation.md. Apply all translation principles above.

Normal Mode

  1. Analyze01-analysis.md (domain, tone, terminology, translation challenges)
  2. Assemble prompt02-prompt.md (translation instructions with context, glossary, challenges)
  3. Translate (following 02-prompt.md) → translation.md

After completion, prompt user: "Translation saved. To further review and polish, reply 继续润色 or refine."

If user continues, proceed with critical review → revision → polish (same as refined mode Steps 4-6 below), saving 03-draft.md (rename current translation.md), 04-critique.md, 05-revision.md, and updated translation.md.

Refined Mode

Full workflow for publication quality. See references/refined-workflow.md for detailed guidelines per step.

The subagent (if used in Step 3.1) only handles the initial draft. All subsequent steps (critical review, revision, polish) are handled by the main agent, which may delegate to subagents at its discretion.

Steps and saved files (all in output directory):

  1. Analyze01-analysis.md (domain, tone, terminology, translation challenges)
  2. Assemble prompt02-prompt.md (translation instructions with inlined context)
  3. Draft03-draft.md (initial translation with translator's notes; from subagent if chunked)
  4. Critical review04-critique.md (diagnosis only: accuracy, Europeanized language, strategy execution, expression issues)
  5. Revision05-revision.md (apply all critique findings to produce revised translation)
  6. Polishtranslation.md (final publication-quality translation)

Each step reads the previous step's file and builds on it.

Step 5: Output

Final translation is always at translation.md in the output directory.

After the final translation is written, do a lightweight image-language pass:

  1. Collect image references from the translated article
  2. Identify likely text-heavy images such as covers, screenshots, diagrams, charts, frameworks, and infographics
  3. If any image likely contains a main text language that does not match the translated article language, proactively remind the user
  4. The reminder must be a list only. Do not automatically localize those images unless the user asks

Reminder format (use whatever image syntax the article already uses — standard markdown or wikilink):

Possible image localization needed:
- ![example cover](attachments/example-cover.png): likely still contains source-language text while the article is now in target language
- ![example diagram](attachments/example-diagram.png): likely text-heavy framework graphic, check whether labels need translation

Display summary:

**Translation complete** ({mode} mode)

Source: {source-path}
Languages: {from} → {to}
Output dir: {output-dir}/
Final: {output-dir}/translation.md
Glossary terms applied: {count}

If mismatched image-language candidates were found, append a short note after the summary telling the user that some embedded images may still need image-text localization, followed by the candidate list.

Extension Support

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.

Comments

Loading comments...