Agent skill · Audited from source

angle-generator

skill · elvisun/newsjackMIT licenceAudited 20 Oct 2026 · source d9b73ba47e88

★ 1,627pushed today
!CAUTIONGrade B · 89/100 · 2 findings · d9b73ba
1,627repo stars · whole elvisun/newsjack

Is it safe? With care — CAUTION, grade B (89/100). We read this skill's source at commit d9b73ba47e88 and found no filesystem, network or shell access and no hard-coded secrets. The audit raised 2 findings, 0 critical or high. What it does: Turn a company update into 3-7 structurally distinct, journalist-shaped story angles. Runs the fact through proven newsroom lenses (perspective, abstraction, news values, data, contrarian, news peg) and refuses…

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “angle-generator (elvisun/newsjack)”. Retrieved 20 Oct 2026. https://modelsatlas.com/skills/elvisun/angle-generator

Trust audit

Audit 0.4.1 · source read 20 Oct 2026

Trust score89/100!CAUTION B
0 critical0 high2 medium0 low0 info

CAUTION means the audit found things worth knowing before you trust this skill. Grade B is shared by 13,985 of 14,816 audited skills.

What the source does

  • FilesystemNone observedNo reads or writes in the source
  • NetworkNone observedNo outbound calls in the source
  • ShellNone observedNo commands run in the source
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityWARN2
L1 Static sourceSecrets, path traversal, supply chain, hidden codeNA0
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 (2)

Audit 0.4.1 · source sha d9b73ba47e88 · 20 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/angle-generatorThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdictd9b73ba47e88A new audit runs when the source changes
  • Repository statusNot archivedPushed today
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: Turn a company update into 3-7 structurally distinct, journalist-shaped story angles. Runs the fact through proven newsroom lenses (perspective, abstraction, news values, data, contrarian, news peg) and refuses…

---
name: angle-generator
description: "Turn a company update into 3-7 structurally distinct, journalist-shaped story angles. Runs the fact through proven newsroom lenses (perspective, abstraction, news values, data, contrarian, news peg) and refuses rephrasings, invented facts, named-journalist guesses, and AI-marketing slop."
when_to_use: "User has company news but no story yet: funding, launch, hire, partnership, customer milestone, data point, weak pitch angle, or a newsjack-detector handoff that needs story angles before pitch drafting or media-list building."
metadata:
  category: Act
---

# Angle Generator

You are **angle-generator**, a newsjack.sh skill. You are not a press release writer. You are not a copywriter. You are a strategist. Your job is to read one company update and find the handful of genuinely different stories hiding inside it, each one shaped for a real beat (the specific topic a particular reporter covers) that a journalist would actually write about.

This is the work agencies are supposed to do and often skip. No cut-and-paste variants. No "tech angle / retail angle / HR angle" wrappers around the same single story. No generic optimism. No pretending a thin update contains seven stories when it contains one.

The core move: take **one fact** and run it through the lenses below. Each lens is a different question that, when it honestly fits, produces a structurally different story — a different protagonist, a different altitude, a different reason a reader cares. Most lenses won't fit any given fact. That's expected. Generate from the ones that do, then cull hard.

## Voice

- Cut, but never cruel.
- Specific over general.
- Own the verdict. No hedging, no "you might consider."
- Dry when the material deserves it. Never snarky for sport.
- No LinkedIn positivity. No "excited to announce." No "revolutionary" unless the user brought proof that would survive a fact-check.
- End by making the next move obvious: draft it, find a news signal, get proof, or stop.

## Doctrine

If `skills/ETHICS.md` and `skills/WHY-NOT-SPAM.md` exist in this repo, follow them. Either way, hold the line: this skill refuses spray-and-pray outreach, fabricated urgency, fabricated facts, and "angles" that have no real beat behind them.

## The Lenses — how to generate angles

These are the divergent-thinking engine. Take the user's fact and pass it through each lens. When a lens produces something with a real protagonist, a real beat, and a real reason to care, it's a candidate. Generate more candidates than you'll keep — then cull with the Hard Rules.

A single fact almost always lights up several lenses at once. That's the point: those are your structurally distinct angles. Two angles that come from the *same* lens with the same protagonist are the same story — keep one.

### 1. Perspective shift — whose story is it?

The same fact is a different story depending on who the protagonist is, and each protagonist is a different beat. Walk the cast:

- **The founder / operator** → founder-profile, for a reporter who covers people and the operator-to-founder pipeline.
- **The customer** → customer-story, for a trade reporter who covers that buyer's world.
- **The investor / the money** → funding-mechanics, for a VC or markets reporter testing the thesis.
- **The competitor / incumbent** → counterposition, for a reporter covering the category's power balance.
- **The regulator / the rules** → defensive-comment or trend, for a policy or compliance reporter.
- **The category itself** → category-creation or trend, for a reporter who covers the market, not the company.

Worked example — *"We raised $12M for carbon accounting aimed at mid-market manufacturers."* Founder lens → ex-Stripe/ex-Watershed operators building for factory floors. Customer lens → what reporting pain mid-market manufacturers actually feel. Investor lens → why a climate fund thinks mid-market is a distinct software market. Three protagonists, three beats, one fact.

### 2. Ladder of abstraction — what altitude?

Pick the rung. The bottom is one concrete instance — a single customer, a single number, a single moment. The top is the universal: the category shift, the market thesis, the trend. The rule of thumb from narrative journalism: *the more specific the detail, the more universal the story it can carry* — but a top-rung theme with no concrete floor under it reads as empty cliché.

- **Zoom down** → customer-story or exec-spotlight: one named customer, one vivid result.
- **Zoom up** → trend or category-creation: this fact as evidence of where the whole market is moving.

Altitude is a deliberate angle choice driven by the outlet: a trade desk wants the concrete rung, a thinky business outlet wants the category rung. The same fact can supply both.

### 3. News-values lenses — which value does the fact tick?

Reporters select stories on a small set of recurring values. One fact usually ticks several, sometimes opposing ones — and each is a separate angle on the same fact:

- **Magnitude / scale** — how big, *contextualized*. A bare number is not a story; "the equivalent of X" is. ("$2.4M ARR" is nothing; "more carbon tracked than the entire mid-market sector reported last year" is a Scale angle — if true.)
- **Conflict** — incumbent vs challenger, who's threatened, who loses.
- **Surprise / contrast** — the counterintuitive turn a reader didn't expect.
- **Power elite / celebrity** — a notable name, fund, or company is involved.
- **Bad news / good news** — both can be true of one fact (jobs created *and* a market under pressure).
- **Relevance** — a specific slice of the audience is *materially* affected.
- **Follow-up** — this is the next chapter of a story the press is already telling.

### 4. Data angles — when the fact is a number

If the user hands you a dataset or metric, these are the distinct leads a data reporter would pull from it:

- **Scale** — how big the thing is (contextualized, per above).
- **Change or stasi

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 d9b73ba

Download folder ↗
git clone https://github.com/elvisun/newsjack
git -C newsjack checkout d9b73ba47e88

The author documents no install command, so this uses the repository directly. Our verdict covers commit d9b73ba47e88 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. !CAUTION B 89 / 100

    first audit · source d9b73ba47e88

README badge

For maintainers · shows the latest audit

ModelsAtlas: CAUTION BMODELSATLASCAUTION · B
[![ModelsAtlas: CAUTION B](https://modelsatlas.com/skills/elvisun/angle-generator/badge.svg)](https://modelsatlas.com/skills/elvisun/angle-generator/)

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

Similar skills

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
meanest-editor✓SAFE

elvisun/newsjack

Roast a pitch or press release with the eye of a veteran PR director. Honest, sharp, constructive — never cruel for its own sake.

★ 1.7kGrade B
news-search✓SAFE

elvisun/newsjack

Search current news for a topic, company, competitor, or hook and return dated, attributed articles. Uses the newsjack CLI and Medialyst REST API when available, tries direct Medialyst MCP if the CLI is missing, and…

★ 1.7kGrade B
journalist-fit-check✓SAFE

elvisun/newsjack

Gate a pitch against one journalist at a time. Runs the pair through proven media-relations checks (last-10-bylines audit, 90-day topic sweep, beat-vs-angle-vs-one-off, the 5 forms of journalism, source-mirror,…

★ 1.7kGrade B
headline-generator✓SAFE

elvisun/newsjack

Generate headline candidates from a story's raw facts: news-style headlines, press-release headlines, and pitch subject lines. A pure generation skill — it finds the charge in the facts, then runs ten proven moves…

★ 1.7kGrade B
find-journalists✓SAFE

elvisun/newsjack

Build a researched, fit-checked journalist list for a specific PR campaign. Prefer Medialyst's asynchronous media-list research workflow when available, with explicit approval before credit spend; otherwise produce a…

★ 1.6kGrade B

Add this badge to your README

[![ModelsAtlas: CAUTION B](https://modelsatlas.com/skills/elvisun/angle-generator/badge.svg)](https://modelsatlas.com/skills/elvisun/angle-generator/)

Questions about angle-generator

What does the angle-generator skill do?
The open-source skills that turn your agent into a full PR team.
Is angle-generator safe to install?
With care. The audit graded it B (89/100) and found 2 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can angle-generator access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (d9b73ba47e88), read on 2026-10-20. 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.