Agent Economy Report

Skill code audit

CAUTION version 1.0.0 · audited 2026-09-17

nano-pdf @steipete

The package is a small skill card: it declares the nano-pdf CLI as a dependency and instructs the agent to run commands such as `nano-pdf edit deck.pdf 1 ...` to modify a PDF. It contains no executable payload, no credential or wallet code, no persistence, and no hidden network endpoints. The observed network use is limited to links to PyPI and ClawHub, and installation of nano-pdf via uv. The main concern is that the external Python package is not version-pinned, so installation could pull a changed or compromised release. The publisher's own notes recommend a sandboxed install and reviewing output PDFs. For an agent that can execute shell commands and touch local files, this warrants review, but there is no evidence of malicious behavior.

Declared purposeEdit PDFs with natural-language instructions using the nano-pdf CLI.
Observed behaviorThe skill documentation tells the agent to install `nano-pdf` through uv and run `nano-pdf edit deck.pdf 1 "..."` in bash. It provides notes about 0-based/1-based page numbering and checking output PDFs. No other code or runtime behavior is present in the provided files.
Verdict, rules onlySAFE
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
install_packagesneededSKILL.md line 5 instructs the registry to install `nano-pdf` via `uv` from PyPI.
shellneededSKILL.md line 14 opens a bash block and line 15 shows the command `nano-pdf edit deck.pdf 1 "..."` to be executed.
filesystem_readneededThe documented `nano-pdf edit deck.pdf` command implies reading a local PDF file as input.
filesystem_writeneededThe tool's purpose is to edit PDFs, which produces a modified PDF file.
networkneededInstallation fetches `nano-pdf` from PyPI; SKILL.md line 4 points to the PyPI project page.

Findings

severityfinding
mediumUnpinned third-party install
The metadata installs nano-pdf from PyPI through uv without a pinned version. A future changed or compromised release could affect the agent's environment.
SKILL.md:5 "install":[{"id":"uv","kind":"uv","package":"nano-pdf","bins":["nano-pdf"],"label":"Install nano-pdf (uv)"}]
lowShell command that modifies a PDF
The skill instructs running a CLI that reads and writes a local PDF file. This is consistent with the declared purpose but should be reviewed for sensitive documents.
SKILL.md:15 nano-pdf edit deck.pdf 1 "Change the title to 'Q3 Results' and fix the typo in the subtitle"
infoExternal package source
The skill points to the PyPI project page for nano-pdf, which is the source of the installed CLI.
SKILL.md:4 homepage: https://pypi.org/project/nano-pdf/
mediumPublisher acknowledges unpinned dependency
The publisher's own risk note confirms the external package is not pinned, which is a supply-chain and reproducibility concern.
skill-card.md:24 Risk: The skill depends on the external nano-pdf Python package as resolved by uv, and the package is not pinned by the skill metadata.
infoPublisher recommends sandboxing
The mitigation advice supports a cautious installation approach, especially when handling sensitive PDFs.
skill-card.md:26 Mitigation: Use a pinned or sandboxed install when processing sensitive documents or when reproducibility is required.
infoOutput verification guidance
The skill tells the agent to review the modified PDF before distribution, which is relevant because edits may be incorrect or unintended.
SKILL.md:20 Always sanity-check the output PDF before sending it out.
infoClawHub publisher link
The skill card links to a ClawHub user page. This is informational and not shown as a runtime data endpoint.
skill-card.md:9 [steipete](https://clawhub.ai/user/steipete)

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:9
pypi.orgnot in the service indexSKILL.md:4

Other facts

Binaries invokedbash, uv
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes0
Persistence0

Files audited

filelinessha256
SKILL.md204a19c3916062a0b2…
_meta.json6887b322c508c0bb9…
skill-card.md57fa01545214a5004b…

For agents

JSON: https://agenteconomy.report/k/nano-pdf.audit.json · badge: https://agenteconomy.report/k/nano-pdf.audited.svg · skill rating: /k/nano-pdf · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).