Skip to content
Security
Skill

/radar-render-dashboard

Regenerate README.md, the repo's landing page and only output surface: badges, a 3-4 bullet "since last scan" digest with inline links, a clickable trend table, the study shelf, and an output map. Use after every change to TRENDS.md, in the same commit. README.md is fully

From plugin
ai-security-research-radar
411 skills
Install
$ npx -y skills add Neetx/ai-security-research-radar --skill radar-render-dashboard --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/radar-render-dashboard

Context preview

The summary Claude sees to decide when to auto-load this skill.

Regenerate README.md, the repo's landing page and only output surface: badges, a 3-4 bullet "since last scan" digest with inline links, a clickable trend table, the study shelf, and an output map. Use after every change to TRENDS.md, in the same commit. README.md is fully

SKILL.md

radar-render-dashboard.SKILL.md
name: radar-render-dashboard
description: |
  Regenerate README.md, the repo's landing page and only output surface: badges, a 3-4 bullet "since last scan" digest with inline links, a clickable trend table, the study shelf, and an output map. Use after every change to TRENDS.md, in the same commit. README.md is fully derived and never edited by hand: if it disagrees with TRENDS.md, TRENDS.md wins — regenerate.

Render the dashboard (README.md)

`README.md` is what GitHub renders on the repo home page — it IS the radar's output surface. It is fully derived from `TRENDS.md`; regenerate it from scratch on every run, never patch it. Design goal: one screen, everything clickable.

Layout (exactly these blocks, in this order)

1. **Title** — `# AI Radar`. 2. **Badge row** — four shields.io static badges, style `flat-square`: `trends-<total>-3266ad`, `accelerating-<n>-e8590c`, `watchlist-<queue count>-6c757d`, `updated-<YYYY--MM--DD>-2f9e44` (escape `-` in dates as `--`). 3. **Intro line** — one sentence: what the radar tracks, for whom, and that the page is generated from [TRENDS.md](TRENDS.md). 4. **Digest** — `**Since last scan (YYYY-MM-DD):**` + 3–4 bullets MAX, in priority order: stage moves, queue promotions/drops, strongest new evidence. Every bullet must contain at least one link (trend anchor or evidence URL). If nothing changed: one bullet, "Quiet scan — no ledger changes." NAME every trend by its LABEL, never by a bare number: write the readable slug or the short label (`agentic-attack-surface-001`, "Agent-stack attacks"). `001`, `Trend 008` and every other bare-number reference are FORBIDDEN in prose — the number belongs inside the anchor/URL, not in the text a human reads. An id is self-describing only to someone who already has the ledger open, and this page is read by someone who does not. 5. **Pinned topics (⭐)** — `## ⭐ Pinned topics` then a table of ONLY the trends with `pinned: true`, same columns as the main table. These are the curator's standing-watch axes; they appear here AND in the main table (where their trend label is prefixed with ⭐). Sort by `last_evidence` descending. 6. **Trends section** — stage strip on one line (`🌱 n · 📈 n · 🚀 n · 🌊 n · 🏔 n · 📉 n · 💤 n`), then ONE table `| trend | stage | latest signal |` with ALL trends (pinned included, prefix their label with ⭐), sorted accelerating → emerging → seed → mainstreaming → saturated → declining → dormant, then by `last_evidence` descending:

  • **trend** = short label (≤5 words; reuse previous README labels for

stability) linking to the trend's anchor in TRENDS.md (see anchor rule); prefix with `⭐ ` when `pinned: true`.

  • **stage** = emoji + word.
  • **latest signal** = the `last_evidence` date linking to the evidence URL

whose date equals `last_evidence` (first match in list order); if none matches, link the top evidence item. 7. **🛠️ Tools & releases** — `## 🛠️ Tools & releases` — a FIRST-CLASS output block (public, usable offensive tools ARE a primary deliverable): up to ~8 bullets of the newest / newly -updated on-axis GitHub tools & tool releases from the watched list AND the tool-discovery lane — `[owner/repo](github-url) — one line (what it does + new version/date if a release)`. ONLY tools with a REAL PUBLIC repo you could clone today (verified per SOURCES → tool-discovery) — a paper that merely CLAIMS a tool with no public/populated repo does NOT go here (it stays in Worth studying as a paper). Draw from Discovered-source candidates promoted this cycle + `study_shelf`/`observation_queue` tool items. If genuinely none: one line "No new tools this scan." Never leave it out — an empty-but-present block tells the reader the lane ran. 8. **Worth studying** — the `study_shelf` section of TRENDS.md (papers/writeups; tools go in the Tools block above), newest first, up to 12 bullets: `[name](url) — one line of why`. 9. **Community pulse** — `## Community pulse` (Phase 3): up to 5 bullets distilled from the latest `radar-pulse` intake — non-evidence, link-only, NEVER naming individuals (link the thread/profile, summarise). If no pulse data yet, one line: "No community pulse sampled yet." This section is clearly marked as unverified sentiment, separate from the verified trend table. 10. **Output map** — one line of links: TRENDS.md, watchlist (queue count) → `TRENDS.md#observation_queue`, `reports/` + newest daily, newest weekly ("weekly: none yet" if absent), AGENTS.md, SOURCES.md.

Anchor rule (GitHub heading slugs)

For a heading `### [id: slug-NNN] Title`, the anchor is: lowercase the whole heading text, delete every character that is not a letter, digit, space or hyphen (no replacement — `Prefill/decode` → `prefilldecode`), then replace spaces with hyphens. Example: `### [id: pd-disagg-002] Prefill/decode disaggregation as the standard LLM serving architecture` → `TRENDS.md#id-pd-disagg-002-prefilldecode-disaggregation-as-the-standard-llm-serving-architecture`. Anchors are recomputed at every render, so title edits stay in sync.

Checks before commit

  • Badge counts = stage-strip counts = table row count = number of `### [id:`

blocks in TRENDS.md.

  • Every table date equals that trend's `last_evidence` exactly; every row has

two working relative/absolute links.

  • No Mermaid, no images besides the badges, no sections beyond the blocks above.
  • Pinned-topics table contains exactly the `pinned: true` trends; every pinned

trend is ⭐-prefixed in the main table too.

  • Community-pulse items are link-only and name no individuals.
  • Commit README.md together with the TRENDS.md change that triggered it.
Read more
Ships withai-security-research-radar

Autonomous tracker of the offensive AI-security frontier — AI for offense and attacks against AI — for a security researcher; generated from TRENDS.md.

Get the whole plugin