skills/story-roleplay/SKILL.md
Parse and apply character cards and world info files in multiple formats (PNG, WebP, JSON), fully compatible with SillyTavern format. Supports automatic parsing, keyword triggering, and dynamic updates.
npx skillsauth add sudoprivacy/sudowork story-roleplayInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Parse and apply character cards and world info files for immersive story roleplay experiences. Fully compatible with SillyTavern formats.
skills/story-roleplay/scripts/), create only if not found1.0.0 (do not use ^)Step 1: Copy Preset Tool
Try in the following order until successful:
Method 1 (Highest Priority): Relative path (if workspace is under project root):
cp skills/story-roleplay/scripts/parse-character-card.js . && cp skills/story-roleplay/scripts/package.json .
Method 2: Search upward for project root (up to 5 levels):
for dir in . .. ../.. ../../.. ../../../.. ../../../../..; do
if [ -f "$dir/skills/story-roleplay/scripts/parse-character-card.js" ]; then
cp "$dir/skills/story-roleplay/scripts/parse-character-card.js" .
cp "$dir/skills/story-roleplay/scripts/package.json" .
break
fi
done
Method 3: Global search (exclude temp directories):
SCRIPT_PATH=$(find ~ -name "parse-character-card.js" -path "*/skills/story-roleplay/scripts/*" ! -path "*/temp*" ! -path "*/*-temp*" ! -path "*/.webpack/*" 2>/dev/null | head -1)
if [ -n "$SCRIPT_PATH" ]; then
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
cp "$SCRIPT_DIR/parse-character-card.js" .
cp "$SCRIPT_DIR/package.json" .
fi
Verify: Confirm files copied
ls parse-character-card.js package.json
Step 2: Install Dependencies
npm install
node_modules was createdStep 3: Execute Parser
# Character card
node parse-character-card.js <image-path> <output-json-path>
# World info
node parse-character-card.js <image-path> <output-json-path> --world-info
Important:
>)Examples:
node parse-character-card.js character.png character.json
node parse-character-card.js "薇娜丽丝.png" character.json
node parse-character-card.js world-info.png world-info.json --world-info
Step 4: Verify Results
npm install firstIf all above methods fail (possibly due to system permission issues), creating script files is allowed:
package.json (see "Fallback Code" section at end of file)parse-character-card.js (see "Fallback Code" section at end of file)Prerequisite: Must have tried all finding methods and all failed.
Triggers: character card, 角色卡, load character, 加载角色, parse character, 解析角色卡
Description: Parse character card files in multiple formats, including PNG, WebP image formats and JSON file format.
chara (v2) or ccv3 (v3)Processing: Use common parser tool workflow (see above), use character card command format when executing.
chara (v2) or ccv3 (v3)Processing:
Standard Format (Tavern Card V2/V3):
name, description, personality, scenario, first_mes, system_promptcharacter_book (character knowledge base)Processing: Read and parse directly (simplest, preferred)
Important: PNG/WebP images must use parser tool, guessing content is forbidden
Detect file format:
Extract character information:
name: Character namedescription: Character descriptionpersonality: Personality traitsscenario: Scenario settingfirst_mes: First message (used as opening)system_prompt: System prompt (character behavior rules)character_book: Character knowledge base (similar to world info)Apply character information:
Save as JSON format (after parsing images):
character.json in workspaceTriggers: world info, 世界信息, world tree, 世界树, load world info, 加载世界信息
Description: Parse and apply world info files, implementing keyword trigger mechanism. Supports JSON files and PNG/WebP image formats (with embedded world info data).
{
"name": "World Name",
"entries": [
{
"keys": ["keyword1", "keyword2"],
"content": "Content to inject when triggered",
"priority": 100,
"enabled": true
}
]
}
naidata (SillyTavern standard)Processing: Use common parser tool workflow (see above), use --world-info flag when executing.
Processing:
keys: Keyword array, triggers when these words appear in conversationcontent: Content to inject when triggeredpriority: Priority (higher number = higher priority)enabled: Whether enabled (true/false)Detect file format:
--world-info flagExtract world info:
entries arrayentries field)Save as JSON format (after parsing images):
world-info.json in workspace--world-info flag)Triggers: character book, 角色知识库, character entry, 角色条目
Description: Handle character_book (character knowledge base) in character cards, similar to world info but bound to specific character.
character_book field in character card:
name: Character knowledge base nameentries: Entry array, each entry contains keys, content, priority, enabledScan workspace:
character.png, character.webp, character.json, *.character.jsonworld-info.png, world-info.webp, world-info.json, world.jsonFormat recognition and parsing:
Apply parsed results:
When no files exist (Important: Must actively guide user):
Active guidance process:
Confirm information: Summarize user-provided information, wait for user confirmation before creating files
Create files:
character.json with all character informationworld-info.json with relevant entriesCreation format:
Users can manually load via:
This skill is fully compatible with SillyTavern formats:
naidata)Important: The following code should only be used when all path finding methods have failed. Prioritize using copy methods.
{
"name": "story-roleplay-parser",
"version": "1.0.0",
"description": "Parser tools for character cards and world info",
"main": "parse-character-card.js",
"scripts": {
"parse": "node parse-character-card.js"
},
"dependencies": {
"png-chunks-extract": "1.0.0",
"png-chunk-text": "1.0.0"
}
}
Complete code reference: skills/story-roleplay/scripts/parse-character-card.js
Key features:
chara or ccv3)naidata)If file is not accessible, can create based on following logic:
png-chunks-extract to extract PNG chunkspng-chunk-text to decode tEXt chunkschara/ccv3 for character cards, naidata for world info)development
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
data-ai
用于在小红书上发布高质量的 AI 相关岗位招聘帖子。包含自动生成极客风格的招聘封面图和详情图,并提供自动化发布脚本。当用户需要发布招聘信息、寻找 Agent 设计师或其他 AI 领域人才时使用。
data-ai
用于在 X (x.com) 发布招聘帖子。包含文案规范、图片生成提示和自动化发布脚本。发布 AI 相关岗位或设计类岗位时优先使用。
tools
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation. Use when users ask for Star Office setup, URL/port connection, Unauthorized page diagnosis, Python venv/pip issues (PEP 668), preview panel wiring, real-time monitor wake-up checks, or similar open-source visualizer alternatives.