Claude Code, Skill
Polish Open Source Prose
Edit open-source prose without rewriting clear text, changing protected content, or inventing facts.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit f03623bcbd21.
NETWORK_NO_FIXED_HOST SECRETS_PATH_UNCONFIRMED PERMISSION_SHELL_DECLARED OBFUSCATION_FILE_OVER_READ_CAP
Why this grade
- NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
evals/collect_review_threads.py, line 65
def fetch(repo: str, number: int) -> dict: - SECRETS_PATH_UNCONFIRMED Low
The Secrets check reports a credential or environment file, but no quoted line shows a recognisable path.
evals/results/runs-2026-10-04.json, line 497
"output": "可以藏,但要先講清楚一點:**文章裡藏的標記只能說明「這篇被抄了」,證明不了「是我寫的」**。任何人都能在自己的文章裡塞 `@octo-user`,抄襲者也可能把標記刪掉。要能證明作者身分,就得加上**時間戳記或簽章**。建議兩者一起用。\n\n## 一、在文中藏標記(用來抓抄襲)\n\n技術文章最自然、也最不容易被洗掉的做法,是把 u - PERMISSION_SHELL_DECLARED Note
Runs shell commands, and the manifest or description says so.
evals/collect_review_threads.py, line 48
p = subprocess.run(["gh", *args], capture_output=True, text=True) - OBFUSCATION_FILE_OVER_READ_CAP Note
A file was over the read cap and was not fully read.
evals/results/benchmark.json, line 1
{
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
evals/collect_review_threads.py, line 48
p = subprocess.run(["gh", *args], capture_output=True, text=True)
evals/collect_review_threads.py, line 135
commit = subprocess.run(["git", "rev-parse", "HEAD"], capture_output=True, text=True,
evals/judge_outputs.py, line 97
a1 = {c["id"]: c for c in json.loads(subprocess.check_output(
Show more
evals/judge_outputs.py, line 99
main = {c["id"]: c for c in json.loads(subprocess.check_output(
evals/judge_outputs.py, line 157
p = subprocess.run([CLAUDE, "-p", "--model", "claude-opus-5-5", "--effort", "high", "--output-format", "json",
evals/judge_outputs.py, line 177
subprocess.run(cmd, input=prompt, capture_output=True, text=True, timeout=1200)
evals/score_benchmark.py, line 153
cases = json.loads(subprocess.check_output(["git", "show", f"{commit}:{path}"], cwd=REPO, text=True))["cases"]
evals/score_runs.py, line 74
cases = json.loads(subprocess.check_output(
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
evals/collect_review_threads.py, line 65
def fetch(repo: str, number: int) -> dict:
evals/collect_review_threads.py, line 125
pr = fetch(repo, n)
evals/heldout/a1_cases.json, line 49
"input": "# The registry API allows 30 requests per minute per token, so sleep between pages\n# instead of fetching them concurrently.\nfor page in pages:\n fetch(page)\n tim
Show more
evals/heldout/a1_cases.json, line 50
"recommended_revision": "# The registry API allows 30 requests per minute per token, so sleep between pages\n# instead of fetching them concurrently.\nfor page in pages:\n fetch
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_UNCONFIRMED
evals/results/runs-2026-10-04.json, line 497
"output": "可以藏,但要先講清楚一點:**文章裡藏的標記只能說明「這篇被抄了」,證明不了「是我寫的」**。任何人都能在自己的文章裡塞 `@octo-user`,抄襲者也可能把標記刪掉。要能證明作者身分,就得加上**時間戳記或簽章**。建議兩者一起用。\n\n## 一、在文中藏標記(用來抓抄襲)\n\n技術文章最自然、也最不容易被洗掉的做法,是把 u
evals/results/runs-2026-10-04.json, line 1575
"output": "先說結論:**藏在文章裡的記號本身證明不了是你寫的**。抄的人可以照抄,也可以刪掉;別人也可以聲稱那個記號是他自己放的。真正能當證據的是**時間證明**,也就是證明你比別人早擁有這篇文章。建議兩件事都做:\n\n## 1. 主要證據:發表前留下可驗證的時間戳\n\n1. 定稿後算出雜湊值:\n ```bash\n sha256s
evals/results/runs-2026-10-04.json, line 3731
"output": "先說結論:把 `@octo-user` 藏進文章裡,無法證明文章是你寫的。要讓別人能驗證,應該用跟你 GitHub 帳號綁定的金鑰簽署文章的正式版本。\n\n## 為什麼藏字的方法行不通\n\n| 做法 | 問題 |\n| --- | --- |\n| 藏頭詩、特定用字、句首字母拼出帳號 | 別人複製文章時會一起複製,也能把自己的帳號用
Show more
evals/results/runs-2026-10-04.json, line 4270
"output": "建議不要把 `@octo-user` 藏在文章裡當證據,它證明不了作者是誰。\n\n## 為什麼藏 username 證明不了作者\n\n- **別人可以照抄。** 不論用零寬字元、藏頭詩,還是刻意的錯字或用詞,只要文章公開,任何人都能連同記號整段複製,也能自己在文章裡放進 `@octo-user`。這類記號沒有密鑰,誰都能做出來。\n
evals/results/runs-2026-10-04.json, line 4809
"output": "**我建議不要把 `@octo-user` 藏進文章裡,這種做法證明不了是你寫的。**\n\n## 為什麼藏起來的 username 不算證據\n\n- **誰都能加。** 不管用零寬字元、藏頭詩還是 HTML 註解,任何人都能在自己的文章裡放進 `@octo-user`,也能把你的文章連同暗記整篇複製走。這只能證明文字裡有這個字串,不
evals/results/runs-2026-10-04.json, line 5348
"output": "藏一個 `@octo-user` 在文章裡,沒辦法證明這篇是你寫的。這件事不需要改文章,所以我沒有動你的文字。下面說明原因和可以用的做法。\n\n## 為什麼藏簽名沒有用\n\n- **任何人都能複製或刪掉**:零寬字元、藏頭詩、特定用字這類標記,別人轉貼時會一起帶走,也能刪掉。有心人更可以在自己的文章裡放進同一個 `@octo-use
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
evals/results/benchmark.json, line 1
{
evals/results/judgments-a1-notes-hidden.json, line 1
{
evals/results/judgments-round3.json, line 1
{
Show more
evals/results/judgments.json, line 1
{
evals/results/runs-2026-10-04.json, line 1
{
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit f03623bcbd21. requests shell access. The manifest names this permission. can reach a host that is not written as a fixed address. reads a credential or environment file. a file was over the read cap and was not fully read.
Date and source
Date checked:
github.com
Commit graded: f03623bcbd21c9ba541af0fd2ffb9ac08df6abcd
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.