radar-render-dashboard — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited radar-render-dashboard (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
# AI Radar.flat-square:trends-<total>-3266ad, accelerating-<n>-e8590c, watchlist-<queue count>-6c757d, updated-<YYYY--MM--DD>-2f9e44 (escape - in dates as --).
page is generated from TRENDS.md.
**Since last scan (YYYY-MM-DD):** + 3–4 bullets MAX, inpriority 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."
## ⭐ Pinned topics then a table of ONLY the trendswith 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.
(🌱 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:
stability) linking to the trend's anchor in TRENDS.md (see anchor rule); prefix with ⭐ when pinned: true.
last_evidence date linking to the evidence URLwhose date equals last_evidence (first match in list order); if none matches, link the top evidence item.
study_shelf section of TRENDS.md, newest first,up to 12 bullets: [name](url) — one line of why (the shelf persists ~20 picks / 30 days so a reader away for a couple of weeks can still catch up).
## Community pulse (Phase 3): up to 5 bullets distilledfrom 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.
TRENDS.md#observation_queue, reports/ + newest daily, newest weekly ("weekly: none yet" if absent), AGENTS.md, SOURCES.md.
A second derived page, for a reader who wants the run's RESULTS in ten seconds. Write it on EVERY daily run, in the same commit as README.md, OVERWRITING the previous version (history lives in reports/). Weekly runs do not touch it. It states the same facts as today's report and README digest — no new claims; every link must already be in TRENDS.md or today's report.
Exact shape — nothing above, between or below these lines:
# AI Radar — YYYY-MM-DD
- **New trend** · [<trend label>](TRENDS.md#<anchor>) — <what it is>.
- **Stage** · [<trend label>](TRENDS.md#<anchor>) <old> → <new> — [<source title>](<url>): <what it shows>.
- **New** · [<source title>](<url>) — <what it shows> (→ [<trend label>](TRENDS.md#<anchor>)).
- **Study pick** · [<source title>](<url>) — <why it is worth reading>.Rules:
any may repeat. One line each; the text after the dash is ≤ 15 words (the (→ trend) link not counted).
Nothing about the radar's own machinery: no sweeps, lanes, passes, sources checked or degraded, heals, queue/watchlist counts or moves, cap swaps, capture-leak, diffs, convergence flags, "Nth independent group" counts, unchanged repos, amendments, dormancy rescues, backfills, next steps.
signals are not results — leave them out. Do not list the same item twice (a study pick already listed as New is not repeated).
no scene-setting, no "a sign that…" interpretation. State the fact. A result that is a claim not yet vetted keeps a one-word tag at the end: (claim) or (preprint).
title, cut at its colon when the title is long.
- Nothing new in this run.Check before commit (a hit is allowed only inside a source's own title or a trend label):
test "$(grep -c '^- ' SUMMARY.md)" -le 6 || echo "TOO MANY BULLETS"
grep '^- ' SUMMARY.md | grep -v '](' | grep -v 'Nothing new in this run' && echo "BULLET WITHOUT LINK"
grep -q "^# .* — $(date +%F)$" SUMMARY.md || echo "WRONG DATE"
grep -niwE 'sweeps?|swept|lanes?|pass(es)?|queued?|watchlist|cap-swaps?|capture-leak|degraded|heal(ed)?|sitemap|diff|coverage|convergence|repo-watch|amendments?|dormancy|backfill|triage|flagged' SUMMARY.md && echo "PROCESS WORDS — rewrite"
grep -niE '[0-9]+(st|nd|rd|th) (independent )?(group|org|organi[sz]ation)' SUMMARY.md && echo "INTERNAL COUNT — drop it"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.
### [id:blocks in TRENDS.md.
last_evidence exactly; every row hastwo working relative/absolute links.
pinned: true trends; every pinnedtrend is ⭐-prefixed in the main table too.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.