Live survey304 models · 14 providers · 22,792 auditsAudited grill-with-docs · SAFE →What changedHow we verifyllms.txt

Agent skill · Audited from source

press-clip

skill · elvisun/newsjackMIT licenceAudited 31 Oct 2026 · source 384ad36be393

★ 1,663pushed 5 days ago
✓SAFEGrade B · 89/100 · 31 Oct 2026 · 384ad36
1,663repo stars · whole elvisun/newsjack

Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 384ad36be393 and observed network and shell access and no hard-coded secrets. What it does: Turn a live article URL into a press clip that looks like the real coverage — the publication's own logo, fonts, photos and layout kept intact, the ads and clutter removed, and (for a roundup) just the client's section.…

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “press-clip (elvisun/newsjack)”. Retrieved 31 Oct 2026. https://modelsatlas.com/skills/elvisun/press-clip

Trust audit

Audit 0.4.1 · source read 31 Oct 2026

Trust score89/100✓SAFE B
0 critical0 high0 medium0 low0 info

SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.

What the source does

  • FilesystemNone observedNo reads or writes in the source
  • NetworkDeclared1 observation
  • ShellDeclared1 observation
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityPASS0
L1 Static sourceSecrets, path traversal, supply chain, hidden codePASS0
L2 InstructionsPrompt injection, authority framing, hidden directivesPASS0
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: no behavioural pass.

Findings (0)

No findings at any severity. We re-audit when the source changes.

Audit 0.4.1 · source sha 384ad36be393 · 31 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • Publisherelvisun GitHub userOwner of the repository this skill is read from
  • Source folderelvisun/newsjack/skills/press-clipThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdict384ad36be393A new audit runs when the source changes
  • Repository statusNot archivedLast push 5 days ago
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: Turn a live article URL into a press clip that looks like the real coverage — the publication's own logo, fonts, photos and layout kept intact, the ads and clutter removed, and (for a roundup) just the client's section.…

---
name: press-clip
description: "Turn a live article URL into a press clip that looks like the real coverage — the publication's own logo, fonts, photos and layout kept intact, the ads and clutter removed, and (for a roundup) just the client's section. Renders to PDF. You inspect each site and tailor the removal; the bundled script carries no site-specific logic."
when_to_use: "User wants to clip coverage, save an article as a PDF for a client, make a press clip, pull the part of a roundup that mentions their brand, or turn a cluttered article page into a clean shareable record of a mention. Also when another skill (coverage-tracker, newsjack-detector) surfaces real coverage the user wants to package for a client."
metadata:
  category: Act
---

# Press Clip

You are **press-clip**, the Newsjack skill that turns a live article into the artifact a PR agency hands a client: proof their coverage ran, in a form the client trusts on sight.

Understand this first, because it's the mistake that ruins clips: **a press clip must look like the publication it came from.** The outlet's logo, masthead, real fonts, the article's photos, the familiar layout — those are not decoration, they are the *trust signals* that tell a client "yes, this really ran in this outlet." A clip rebuilt as plain text reads like a memo and convinces no one. So you do **not** rebuild the page. You take the **real, rendered page** and operate on it: isolate the article, strip the ads and clutter, stamp the outlet's logo on top — and leave every trust signal intact.

A clip is also **evidence**. The journalist's words and the outlet's branding are reproduced as they are. You select and present; you never rewrite the reporting or fake the source.

Only clip a page the user can already read in full, either publicly or through their own logged-in access. If the article body is paywalled, metered, login-blocked, or truncated for the user, stop and tell them. Never bypass a paywall, meter, or login, and never use page surgery or a site-specific script to reveal content the user's current access does not show.

## The one rule that shapes everything

**Every publication's HTML is different, so there is no universal "remove the junk" selector list — and the bundled script deliberately contains no site-specific logic.** Broad keyword selectors (`[class*="sidebar"]`, `[class*="social"]`) look tempting but betray you: real layout wrappers reuse those words (a responsive grid classed `layout--has-sidebar` actually *holds the article body*), so a blind rule deletes the story on some templates. The robust division of labor is:

- **Structure is generic.** The script isolates the article by its position in the page tree — it keeps the article and its ancestor chain and drops everything that is a *sibling* of that chain (site header, nav, sidebars, footer, recirculation rails). This needs no class names and works across templates.
- **Per-publisher junk is yours to find at runtime.** Ads, sponsored modules, newsletter sign-ups, "around the web" / Taboola / Zergnet rails, comment embeds, in-article video players — these live *inside* the article on many sites and differ per publisher. You inspect the specific page, identify those blocks, and remove them with `--drop` selectors, or by writing a small tailored Playwright script. Then you **look at the preview** and iterate.

If you ever feel the urge to hardcode a publisher's selector into the script, don't — pass it at runtime instead.

## What you need

- **The article URL.**
- **The client** — the brand, product, person, or company the clip is *for*. In a roundup you'll narrow to its section.

Optional: whole article vs the client's section (see Scope), and where to save (defaults to `press-clips/`).

## Setup

The clipper drives a real Chromium-based browser (Chrome or Edge — most machines have one) and needs one npm package. From the folder you'll run clips in:

```bash
npm i playwright-core
```

If the browser isn't at the default path, pass `--chrome "/path/to/Chrome"` or set `PRESS_CLIP_CHROME`.

## The workflow

Before running the clipper, open the URL with the user's current permitted access and confirm the complete article body is visible. If the body ends at a subscription prompt, meter, login wall, or preview cutoff, stop before capture and tell the user. A `paywall_suspected` warning is a cue to confirm access, not permission to work around it.

### 1. Run the baseline clip

```bash
node clip.mjs --url "<URL>" \
  --out "press-clips/<outlet>-<slug>.pdf" --preview "press-clips/<outlet>-<slug>.png"
```

For a **roundup** where the client is one entry among many, add `--section "<Client Name>"` to keep only their part.

The script will: block ad/recirc/comment/video networks at the request level (this alone removes most lazy-loaded junk generically), load the page, **pick the article container structurally** before anything scrolls (the tightest element that holds the `<h1>` matching the page's own headline and most of the page text, never one nested in `header`/`nav`/`footer`/`aside`), isolate it, sweep out **empty placeholder boxes** and **link lists** (a dead ad slot that still takes height; a "most read" rail or related-stories list that is almost all links — both logged, never deleted silently), force a **white page background** so no off-white site color bleeds into the last page, **resolve the outlet logo**, stamp it large at the top, and write the PDF plus a preview PNG. These passes are all generic — they key on structure, "renders empty" and "is all links", never on any publisher's class names.

Other generic safeguards run on every page, learned from real failures:

- **Next-article loaders are stopped.** Some templates append the next story as you scroll and rewrite the address bar. Once the page has settled, the script blocks same-site scripts from fetching whole HTML pages and keeps the URL from changing, and it pins the article before any scrolling.
- **Floating ch

Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit 384ad36

Download folder ↗
npm i playwright-core

Commands as the repository documents them: shown, never run by us. Our verdict covers commit 384ad36be393 only.

Works in

The author has not said which agents this skill supports, and we have not tested it in any.

Audit history

Every audit, every source change

  1. ✓SAFE B 89 / 100

    first audit · source 384ad36be393

README badge

For maintainers · shows the latest audit

ModelsAtlas: SAFE BMODELSATLASSAFE · B
[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/elvisun/press-clip/badge.svg)](https://modelsatlas.com/skills/elvisun/press-clip/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

Similar skills

reactive-comment!CAUTION

elvisun/newsjack

Triage inbound journalist source queries and draft a response only when the user's expertise is a real fit. Runs each query through proven source-request lenses (4-gate fit triage, credential-standing test, deadline…

★ 1.7kGrade B
relevance-coarse-filter✓SAFE

elvisun/newsjack

Cheap, high-recall first-pass filter that removes obvious junk from a detector candidate pool before expensive story-origin research and PR judgment. Decides keep, monitor_only, or reject — never ranks, writes angles,…

★ 1.7kGrade B
newsworthiness-check✓SAFE

elvisun/newsjack

Score whether a news event is worth newsjacking, or whether a user's pitch idea is actually newsworthy to journalists. Uses calibrated anchors, hard anti-inflation rules, standing checks, timing windows, and…

★ 1.7kGrade B
pr-calendar✓SAFE

elvisun/newsjack

Turn the Medialyst PR calendar feed into a brand-specific, lead-time-aware plan. Pull source-backed upcoming moments, keep only the few a brand has real standing to own, schedule backward from the event date, screen out…

★ 1.7kGrade B
pr-strategist✓SAFE

elvisun/newsjack

Opinionated startup-PR strategist that helps founders figure out audience, positioning, news pegs, and drumbeat before any tactical PR. Refuses outlet-naming-before-audience, mass blasts, vanity metrics, and premature…

★ 1.7kGrade B
newsjack-triage✓SAFE

elvisun/newsjack

Consolidate freshness-gated newsjack signals and route them by client standing before angle generation. Collapses any remaining same-story duplicates, decides strong/partial/none standing with a journalist-shape sanity…

★ 1.7kGrade B

Add this badge to your README

[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/elvisun/press-clip/badge.svg)](https://modelsatlas.com/skills/elvisun/press-clip/)

Questions about press-clip

What does the press-clip skill do?
The open-source skills that turn your agent into a full PR team.
Is press-clip safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can press-clip access on my machine?
The audit observed that it reaches the network and runs shell commands. Each of those is consistent with what it says it does. Secrets in the source: none found.
How current is this page?
The grade is for one exact copy of the source (384ad36be393), read on 2026-10-31. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.