$npx -y skills add elvisun/newsjack --skill newsjack-detectorMonitor current news and reaction signals, then decide which are credible newsjacking opportunities for a client. Uses the local monitoring engine for evidence, but the skill owns PR judgment, brand safety, standing, decay, angle fit, and handoff.
| 1 | # Newsjack Detector |
| 2 | |
| 3 | Find timely public signals and decide whether a client has a credible, non-spammy reason to use them. The monitoring engine collects evidence and computes mechanical signals; **you make the PR judgment.** |
| 4 | |
| 5 | This is a **molecule** skill — it orchestrates atomic skills rather than re-implementing them. Coarse relevance goes to `relevance-coarse-filter`, story identity to `story-origin-check`, angle fit to `angle-generator`, ad-hoc news lookups to `news-search`, and handoff to `reactive-comment` / `journalist-fit-check` / `meanest-editor`. Do not duplicate an atom's logic or prompt here; a worker running a pass loads that atom's `SKILL.md` directly, so the atom stays the single source of truth. |
| 6 | |
| 7 | The monitoring engine's live `news_search` source needs a Medialyst key; without one it runs on RSS/X plus host-driven `news-search` and degrades gracefully. Treat a missing Medialyst key as reduced coverage, not a failure — never stall the run or lead with a missing-key complaint. |
| 8 | |
| 9 | ## Runtime Mode |
| 10 | |
| 11 | Newsjack Detector has two runtime modes: |
| 12 | |
| 13 | - **Full Mode:** Use this in Claude Code, Codex, OpenClaw, Hermes, or another capable agent harness with shell, filesystem, network, and local CLI access. Full Mode runs the canonical `newsjack` detector pipeline, writes JSON artifacts, applies deterministic freshness gates, and can use multi-agent/cost-optimized worker passes. |
| 14 | - **Limited Mode:** Use this in Claude.ai chat, ChatGPT chat, Claude Cowork, or any restricted runtime without shell/filesystem/CLI access. Do not attempt `curl`, `npm`, or on-demand CLI installation. Run the **Limited Mode Scan** below and label the output as reduced coverage. |
| 15 | |
| 16 | **Before you decide you're in Limited Mode, check whether `newsjack` is installed.** It ships as a prebuilt, bundled binary — you do **not** need Go, a compiler, or any build/install step to run it. Never look for a Go toolchain, and never declare the CLI "missing" or tell the user they need a "Go environment" without running this check first: |
| 17 | |
| 18 | 1. Run `newsjack --version`. If it prints a version, you're in Full Mode — use plain `newsjack ...` for every command. |
| 19 | 2. If `newsjack` isn't on `PATH`, try the bundled location `~/.newsjack/bin/newsjack --version`. If that prints a version, use that full path in place of `newsjack` everywhere below. |
| 20 | 3. Only if **both** fail (and you genuinely have no shell) are you in Limited Mode. |
| 21 | |
| 22 | The bundled binary is almost always already installed — assume Full Mode and verify, don't assume it's missing. |
| 23 | |
| 24 | ## Required Workflow (follow in order) |
| 25 | |
| 26 | **Default mode in Full Mode: run the canonical pipeline and return a report.** This skill exists to produce a freshness-gated newsjack report, including for scheduled/cron runs. Execute by default — only drop into discussion/planning when Step 2 is blocked. In Limited Mode, run a disclosed reduced-coverage scan instead. |
| 27 | |
| 28 | 1. **CHECK DOCTRINE.** If `skills/ETHICS.md` or `skills/WHY-NOT-SPAM.md` exist, follow them. This skill refuses tragedy hooks, fabricated standing, fake urgency, and spray-and-pray output. These blocks are absolute and override every later step. |
| 29 | |
| 30 | 2. **ANCHOR THE CLIENT — ASK FIRST ONLY IF BLOCKED.** Identify company, topics, competitors, spokespeople, standing, and client-specific exclusions, from a profile JSON or plain-text context. |
| 31 | - No profile **and** no usable client context → ask for it before running. Never invent profile facts. |
| 32 | - Genuinely ambiguous (which client? which topic? one-off vs recurring?) → ask one clarifying question, then proceed. Otherwise do not stall the run. |
| 33 | - Missing standing is not a blocker: monitor, but mark opportunities `weak`/`no-standing`. |
| 34 | - **Load the client brief.** Read the monitor's `brief.md` (its path is surfaced as `brief_path` by `monitor run`/`monitor status`, or it sits next to the profile). It is the **source of truth** for what this client will and won't pitch and how to present the scan — see **Client Brief** below. An empty/template brief carries no rules. |
| 35 | |
| 36 | 3. **PICK THE RUN SHAPE.** |
| 37 | - Restricted chat / no CLI / no filesystem → **Limited Mode Scan** below. |
| 38 | - One-off / "what's moving on X" → **Quick Run** below. |
| 39 | - Real judgment, agent run, or scheduled job → **Canonical Pipeline** below (the default for any output a human or pitch will rely on). |
| 40 | - Recurring / cron feed monitoring → Canonical Pipeline plus the recurring rules in **Freshness Gate** (`--feed-only --new-only --max-age-ho |