unisound-medical-term-normalization

ReviewAudited by ClawScan on May 15, 2026.

Overview

The skill appears purpose-aligned for normalizing medical records, but it sends sensitive clinical text to a disclosed model API and needs careful handling of records, API keys, and optional local saves.

Install only if you are allowed to send the medical text to the configured Hivoice model endpoint. De-identify patient records before use, protect the `--appkey`, avoid debug saves for real patient data, and have a qualified clinician review the normalized output.

Findings (4)

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.

What this means

De-identified clinical text and the API credential are sent to the configured model provider, so that provider's access, logging, and retention practices matter.

Why it was flagged

The skill discloses that medical record text is sent to a model API using a bearer credential. This is central to the stated purpose, but it crosses a provider data boundary.

Skill content
外部 API - 内部医疗大模型:`https://maas-api.hivoice.cn/v1/chat/completions` ... 需要传入 `--appkey` 参数进行 Bearer 认证
Recommendation

Use only de-identified records, verify that the endpoint is approved for your organization, avoid overriding the base URL unless intended, and confirm provider retention/privacy terms.

What this means

Anyone with the app key may be able to make calls to the associated model service or incur usage under that account.

Why it was flagged

The script requires a user-supplied API key for the model service. This is expected for the integration, but the registry metadata did not declare a primary credential.

Skill content
parser.add_argument("--appkey", required=True, help="必须传入。内部医疗大模型鉴权 key,使用 Bearer 方式认证。")
Recommendation

Treat the app key as a secret, use a minimum-scope key where possible, avoid placing it in shared logs or prompts, and rotate it if exposed.

What this means

If enabled, prepared medical text may remain on disk after the run and could be read by others with access to that location.

Why it was flagged

The optional debug path writes the preprocessed medical text to disk. This is user-directed and disclosed, but it can persist sensitive clinical content locally.

Skill content
if args.save_prepared:
            save_prepared(payload, args.output, input_path)
...
prepared_path.write_text(payload_to_prepared_text(payload), encoding="utf-8")
Recommendation

Do not use `--save-prepared` with identifiable patient data unless the directory is protected; delete debug files when no longer needed.

What this means

The behavior for parsing PDFs, documents, spreadsheets, and other files depends on the external shared preprocessor installed in the local skills tree.

Why it was flagged

The script imports preprocessing code from a shared directory outside this skill package. That dependency is disclosed and purpose-aligned, but its provenance/version is not visible in the supplied files.

Skill content
PREPROCESS_DIR = SKILLS_ROOT / "_shared" / "doc-preprocess" / "scripts"
...
from preprocess import PreprocessError, SUPPORTED_FILE_TYPES, detect_input_type, load_input_artifact
Recommendation

Install `_shared/doc-preprocess` only from a trusted source and keep it reviewed/updated, especially when processing sensitive documents.