siyuan-task-skill

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill largely does SiYuan task management as advertised, but it ships with a real-looking SiYuan API URL/token and can make persistent edits or deletions in that notebook.

Review and replace config.env before use. Do not run the skill with the bundled SIYUAN_API_TOKEN or notebook IDs; rotate the token if it is real. Back up your SiYuan data, run init against your own notebook, and require confirmation before deletes or database migration/internal rewrite operations.

Findings (2)

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

If this token is valid and reachable, the agent could read or mutate a specific SiYuan notebook that may not belong to the installing user, or the bundled credential could be exposed to anyone with the skill files.

Why it was flagged

The skill bundle contains a real-looking API endpoint, token, notebook ID, and notebook name rather than only placeholders. The Python client loads SIYUAN_API_TOKEN and uses it as the SiYuan Authorization token, while the registry declares no primary credential.

Skill content
SIYUAN_API_URL=http://100.64.0.11:52487
SIYUAN_API_TOKEN=cdeh83bk45p3g21d
SIYUAN_NOTEBOOK_ID=20260209134607-xcqh19y
SIYUAN_NOTEBOOK_NAME=work
Recommendation

Remove bundled credentials, rotate this token if it is real, require each user to provide their own token through a declared secret/config mechanism, and fail safely when the config still contains non-user-provided defaults.

What this means

A wrong token, wrong AV_ID, malformed response, or unexpected SiYuan format change could corrupt or silently alter the task database.

Why it was flagged

The task manager directly reads and rewrites SiYuan's internal Attribute View JSON file to bind rows to sub-documents. This is scoped to the configured AV_ID, but it bypasses safer high-level task APIs and has no visible backup, confirmation, or rollback.

Skill content
av_path = f"/data/storage/av/{self.AV_ID}.json"
av_data = self.client.get_file(av_path)
...
r = self.client.put_file(av_path, av_data)
Recommendation

Use supported high-level SiYuan APIs where possible, validate the AV_ID and file shape before writing, create a backup or dry-run mode, and ask for explicit confirmation before internal database rewrites.