paper-notion-summarizer

PendingStatic analysis audit pending.

Overview

No static analysis result has been recorded yet. Pattern checks will appear here once the artifact has been analyzed.

Findings (0)

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

A malicious or unusual paper could contain text that attempts to influence the agent's behavior while it is summarizing.

Why it was flagged

The agent is instructed to ingest externally fetched paper content. That is expected for summarization, but paper text should be treated as untrusted source material, not as instructions to the agent.

Skill content
Read the extracted JSON section by section (`read` tool with `offset`/`limit` for large files)
Recommendation

Use the paper text only as content to summarize; do not let instructions inside a paper override the user's request or the skill workflow.

What this means

Using update behavior incorrectly could remove existing Notion page content before rewriting it.

Why it was flagged

The Notion helper can delete all child blocks of a page as part of update behavior. This matches the documented force-update option, but it is a high-impact account mutation if the wrong page is selected.

Skill content
def clear_block_children(page_id: str, token: str) -> None:
    blocks = get_block_children(page_id, token)
    for block in blocks:
        notion_request("DELETE", f"/blocks/{block['id']}", token)
Recommendation

Use dry-run first, avoid force-update unless necessary, and provide a parent page ID/token that is scoped only to the Notion area intended for paper summaries.

What this means

A broadly scoped Notion token could allow the skill to search, create, append, or delete content beyond a single intended page.

Why it was flagged

The script reads a Notion API token from the environment or a local config file. This is expected for uploading to Notion, but it grants delegated access to the user's Notion workspace.

Skill content
key = os.environ.get("NOTION_API_KEY") ... key_file = Path.home() / ".config" / "notion" / "api_key"
Recommendation

Use a Notion integration token with the minimum page access needed, and revoke or rotate it if it is no longer needed.

What this means

Installing dependencies manually can introduce package-version or supply-chain risk if done in an untrusted environment.

Why it was flagged

The skill documents a manual, unpinned package installation instead of a locked install spec. This is purpose-aligned, but users should be aware of dependency provenance.

Skill content
arXiv papers use PDF extraction (requires `pypdf`). Install: `pip install pypdf`
Recommendation

Install dependencies in a virtual environment and prefer pinned, reviewed package versions when possible.

What this means

The generated Notion summary could reveal personal research interests or other context the agent knows about the user.

Why it was flagged

The instructions allow the agent to use known user context when writing a Notion page. This may be useful, but it can also include personal or research context in a persistent external destination.

Skill content
If you know the user's research interests, connect the paper to them.
Recommendation

Ask the agent not to include personal context if the Notion page will be shared or stored in a less private workspace.