cp-skill-snapshot-web — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cp-skill-snapshot-web (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Target: $ARGUMENTS
If no URL provided, ask the user for one.
If URL provided, start Step 1 immediately.
START NOW.
Use Grep to search for the URL in existing .md files in kb/sources/. If found, tell the user and stop:
Already snapshotted: kb/sources/{filename}
Detect the URL type and branch:
github.com/.../issues/N or github.com/.../pull/N) → Step 2ax.com/.../status/... or twitter.com/.../status/...) → Step 2b.pdf, or arxiv.org/pdf/) → Step 2cRun:
commonplace-github-snapshot "{url}"Parse the "Snapshot saved:" line from the output to get the file path. Tell the user and stop — the script handles metadata, formatting, and saving.
Run:
commonplace-x-snapshot "{url}"Parse the "Snapshot saved:" line from the output to get the file path. Tell the user and stop — the script handles metadata, formatting, and saving.
Download the PDF to a temporary file:
curl -sL -o /tmp/snapshot_download.pdf "{url}"Then use the Read tool to read the PDF:
Read(file_path="/tmp/snapshot_download.pdf")pages parameter (max 20 pages per request), e.g. pages: "1-20", then pages: "21-40", etc.Set capture_method to pdf-read and go to Step 4.
Use WebFetch with this prompt:
Extract the main article/post content from this page as clean markdown. Return ONLY the content — no navigation, sidebars, ads, cookie banners, or boilerplate. Preserve: headings, block quotes, code blocks, links, lists, emphasis. For blog posts: include the author name, publication date, and tags if visible. If the page has no extractable content (login wall, JS-only, error page), say "NO_CONTENT:" followed by a brief reason.
Set capture_method to web-fetch and go to Step 4.
If any fetch method fails (WebFetch NO_CONTENT, curl error, script error):
(Only for PDF and web page paths — GitHub and X scripts handle their own metadata.)
From the fetched content and URL, determine:
kb/sources/types/snapshot.md), e.g. blog-post, academic-paper. Prefer a tag already in use in kb/sources/ over inventing a near-synonym; default to web-page when nothing more specific fits.simon-willison-karpathy-clawsFor academic papers: prefer the paper title over any page title, and extract authors from the author list.
Save to kb/sources/{slug}.md with this format:
---
source: {url}
description: {description}
captured: {YYYY-MM-DD}
capture: {capture_method}
type: kb/sources/types/snapshot.md
tags: [{family-tag}]
---
# {title}
Author: {author}
Source: {url}
Date: {publication date if known}
{extracted content}For PDFs: convert the read content to clean markdown. Preserve section structure, tables, and lists. Drop page numbers, headers/footers, and layout artifacts.
Also tell the user where it was saved and show a 1-2 line preview.
Never:
kb/sources/Always:
captured~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.