汉字书法字体识别
PassAudited by VirusTotal on May 11, 2026.
Overview
Type: OpenClaw Skill Name: chinese-calligraphy-recognition Version: 1.0.0 The skill bundle is a legitimate tool for identifying Chinese calligraphy styles (e.g., Kai, Cao, Li) using image recognition. The core logic in `scripts/recognize.py` facilitates uploading images to HuggingFace Spaces or a documented mirror site (takin.cc) and downloading images from user-provided URLs. The metadata in `SKILL.md` includes standard AIGC provenance signatures (Minimax Agent AI), and the instructions are strictly aligned with the stated purpose without any signs of prompt injection or malicious intent.
Findings (0)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Private calligraphy images or artifact photos may be sent to an unexpected third-party service before the Hugging Face fallback is used.
The helper posts the user's image bytes to a separate mirror domain. SKILL.md presents the skill as calling a Hugging Face calligraphy model, so this additional first-choice destination has unclear operator identity, privacy handling, and retention.
url = "https://xjf123.dy.takin.cc/upload"
files = {"file": image_data}
response = requests.post(url, files=files, timeout=60)Clearly disclose all upload destinations, make the mirror opt-in, default to the documented provider, and tell users not to submit private images unless they accept those services' data handling.
If a broad Hugging Face token is present in the environment or passed on the command line, it may be used by this helper during recognition.
The script can automatically use a local Hugging Face token and send it with the API request. This is related to the stated Hugging Face integration, but credentials are not declared in the registry metadata.
self.api_token = api_token or os.environ.get("HF_TOKEN")
...
headers["Authorization"] = f"Bearer {self.api_token}"Document the optional credential use, require explicit user opt-in where possible, and use a least-privilege token only when authentication is actually needed.
The skill may produce results that users could mistake for font classification even when the helper is reporting character recognition output.
The preferred mirror parsing path appears to return and print a recognized character, while the skill description promises font-type identification such as 楷书、行书、草书、篆书、隶书.
return {
"success": True,
"char": all_results[0]["char"],
"confidence": all_results[0]["confidence"],
"all_results": all_results,
"raw_result": result
}
...
print(f" 汉字: {result.get('char', result.get('font_type', 'N/A'))}")Clarify whether the model recognizes font style, characters, or both, and label results accordingly so users do not over-trust them for appraisal or research decisions.
