SkillTotal

Is Claude Skill Social Post safe?

No malicious indicators - review capabilities before installing
Notable — review in context (capabilities are not malware):
  • Python filesystem read
  • Python filesystem write/delete
  • MCP tool surface detected

repo is an AI directory analyzed by SkillTotal's deterministic static scanner. The scan found no malicious indicators, though 3 risky constructs are reported for review. It can: filesystem read, filesystem write and mcp tools detected — capabilities are what the code can do, not a verdict on intent. Risk score 0/100 (low).

repo

directory · https://github.com/Hao0321/claude-skill-social-post
LOW
0
/ 100 risk score
Snapshot · scanned Aug 14, 2026 · repo@4ab38e4 · engine 0.38.1 / ruleset 42

Automated static-analysis result. It can contain false positives and false negatives, and is not a claim about the intent of Claude Skill Social Post's authors. Report a false positive.

Capabilities — what this component can do (not a risk score):
filesystem readfilesystem writemcp tools detected

Behavioral traits

How this component maps to the CSA agentic threat model. Descriptive — it never affects the risk score.

Tool surface
Tool Usage
Filesystem reach
Tool Execution Context

Findings (3)

MEDIUMPython filesystem readST-FS-PY-READ

The component reads files from disk.

metadata_value = json.loads(METADATA.read_text(encoding="utf-8-sig"))
text = source.read_text(encoding="utf-8-sig")
bundle = json.loads(args.bundle.read_text(encoding="utf-8-sig"))
value = json.loads(path.read_text(encoding="utf-8-sig"))
for line_no, raw in enumerate(path.read_text(encoding="utf-8-sig").splitlines(), start=1):
digest.update(path.read_bytes())
originals = {path: path.read_bytes() if path.exists() else None for path in records}
elif path.read_text(encoding="utf-8-sig") != expected:
manifest = json.loads(MANIFEST.read_text(encoding="utf-8-sig"))
normalized = path.read_text(encoding="utf-8-sig").replace("\r\n", "\n")
original = SOURCE.read_text(encoding="utf-8-sig")
text = SOURCE.read_text(encoding="utf-8-sig")
heading = HEADING.search(path.read_text(encoding="utf-8-sig"))
actual = path.read_text(encoding="utf-8-sig")
text = path.read_text(encoding="utf-8-sig")
manifest = json.loads(MANIFEST.read_text(encoding="utf-8-sig"))
if normalized_hash(path.read_text(encoding="utf-8-sig")) != record["sha256"]:
prefix, rules = parse(SOURCE.read_text(encoding="utf-8-sig"))
config = json.loads(CONFIG.read_text(encoding="utf-8-sig"))
if destination.exists() and destination.read_bytes() == source.read_bytes():

Why it matters: Usually legitimate, but worth confirming it can't be steered into reading sensitive files.

Fix: Confirm which files are read and that paths cannot be influenced by untrusted input to reach sensitive locations.

MEDIUMPython filesystem write/deleteST-FS-PY-WRITE

The component writes or deletes files on disk.

OUTPUT.write_text(rendered, encoding="utf-8")
path.write_text(content, encoding="utf-8")
shutil.copyfile(staged, temporary)
destination.write_bytes(original)
MANIFEST.write_text(json.dumps({"schema_version": "1.0", "cases": records}, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
(CASE_DIR / f"case-{case_id:02d}.md").write_text(content, encoding="utf-8")
SOURCE.write_text(index_text(prefix, cases), encoding="utf-8")
(TARGET / filename).write_text(section, encoding="utf-8")
SOURCE.write_text(prelude + "\n" + "\n".join(navigation) + "\n", encoding="utf-8")
(TARGET / "manifest.json").write_text(json.dumps(manifest, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
(TARGET / "manifest.json").write_text(json.dumps(manifest, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
MANIFEST.write_text(json.dumps({"schema_version": "1.0", "rules": records}, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
(RULE_DIR / f"R{rule_id:02d}.md").write_text(content, encoding="utf-8")
SOURCE.write_text(index_text(prefix, rules), encoding="utf-8")
shutil.copy2(source, destination)

Why it matters: Usually legitimate, but worth confirming the paths can't be controlled by untrusted input.

Fix: Confirm which files are written/deleted and that paths cannot be influenced by untrusted input.

LOWMCP tool surface detectedST-MCP-DETECTED

An MCP tool surface (manifest or tool definitions) was found.

Why it matters: Just context — review which tools it offers and their permissions.

Fix: Review the declared MCP tools and their permissions.

Check your own component

Run the same evidence-backed scan on any MCP server, agent skill, or package.

Scan your own component

How we determine this: deterministic static analysis (regex + AST), evidence-anchored, no code execution. Methodology →