Agent skill · Audited from source
angle-generator
skill · elvisun/newsjackMIT licenceAudited 20 Oct 2026 · source d9b73ba47e88
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…
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
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
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | WARN | 2 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (2)
MEDIUMInventory / provenanceinv.symlink · plugins/newsjack/.mcp.json
plugins/newsjack/.mcp.json
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · plugins/newsjack/skills
plugins/newsjack/skills
- Why
- link not followed
- Fix
- —
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 stasiExcerpt, 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
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
- !CAUTION B 89 / 100
first audit · source
d9b73ba47e88
README badge
For maintainers · shows the latest audit
[](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
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…
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.
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…
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,…
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…
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…
Add this badge to your README
[](https://modelsatlas.com/skills/elvisun/angle-generator/)
<a href="https://modelsatlas.com/skills/elvisun/angle-generator/"><img src="https://modelsatlas.com/skills/elvisun/angle-generator/badge.svg" alt="ModelsAtlas: CAUTION B"></a>
Questions about angle-generator
What does the angle-generator skill do?
Is angle-generator safe to install?
What can angle-generator access on my machine?
How current is this page?
Sources
- github.com/elvisun/newsjack/tree/main/skills/angle-generator — the audited source at commit d9b73ba47e88 and every finding aboveObserved · 20 Oct 2026
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.
- What does the angle-generator skill do?
- Is angle-generator safe to install?
- What can angle-generator access on my machine?