18621063286/bili-rs/SKILL.md
Development skill for bili-rs, a Rust CLI tool for Bilibili (B站). Use when implementing features, fixing bugs, or extending the bilibili-cli-rust codebase. Provides architecture conventions, API endpoints, coding patterns, and project-specific constraints. Triggers on tasks involving adding CLI commands, calling Bilibili APIs, handling authentication, implementing output formatting, or working with the layered cli/commands/client/payloads architecture.
npx skillsauth add openclaw/skills bili-rsInstall 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.
Rust rewrite of bilibili-cli. Single binary, no runtime deps. Full feature parity with the Python original.
cli/ (clap structs only) → commands/ (business logic) → client/ (HTTP async fn)
↓
payloads/ (normalize raw JSON → structs)
↓
formatter.rs (JSON/YAML/Rich output)
Rules:
cli/ — clap derive structs only, zero business logiccommands/ — calls client/, never builds HTTP requests directlyclient/ — never imports clap or formattersrc/cli/<domain>.rssrc/commands/<domain>.rssrc/client/<domain>.rssrc/payloads/<domain>.rs if neededsrc/main.rs run() match arm// client/ layer: always map API errors
let code = body["code"].as_i64().unwrap_or(-1);
if code != 0 {
return Err(map_api_error(code, body["message"].as_str().unwrap_or("unknown")));
}
// commands/ layer
match result {
Ok(data) => formatter::output(data, format),
Err(e) => { emit_error(&e, format); std::process::exit(1); }
}
SuccessEnvelope { ok: true, schema_version: "1", data: T }
ErrorEnvelope { ok: false, schema_version: "1", error: ErrorBody }
--json > --yaml > $OUTPUT env var > TTY→Rich / non-TTY→YAML
Optional — load saved creds if available, don't fail if missingRead — requires SESSDATAWrite — requires SESSDATA + bili_jctCredential file: ~/.bilibili-cli/credential.json (0o600, 7-day TTL)
Some Bilibili endpoints require a WBI request signature (a per-request HMAC-like parameter). Use src/client/wbi.rs:
let (img_key, sub_key) = fetch_wbi_keys(cred).await?;
let params = sign_params(vec![("bvid".to_string(), bvid)], &img_key, &sub_key);
req = req.query(¶ms);
Known endpoints needing WBI: /x/web-interface/view/conclusion/get
console::stylecomfy-table) or JSON/YAML"X.X万" formatcargo build && cargo clippy -- -D warnings && cargo fmt --check && cargo test
PRD.md in project rootCLAUDE.md in project roottools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。