Rémy Schumm blog ingénieur

Poor Man's AI Radar Redaction System

publiziert am 23. 04. 2026 um 10:00

Ein alter kleiner Traum wurde grad wahr: ich habe mir hier ein sehr niederschwelliges, aber erstaunlich mächtiges kleines Technologie-Radar-System gebaut: Aus einem Safari-Bookmark-Dump wird mit sehr wenig Reibung eine kuratierte Liste von Technologien für den Blog hier. Kein grosses Produkt, keine Datenbank, kein Workflow-Monster, sondern einfach ein pragmatischer Redaktionspfad für einen persönlichen Tech-Radar.

Die Idee ist bewusst niederschwellig:

Im Detail:

flowchart TD A[Safari Bookmarks Ordner: z.B. «🖥️📡 dump»] B[VS Code mit AI und Radar-Skill] C[Jekyll Post in «_posts»] D[Blog-Eintrag auf www.schumm.ch] A --> B --> C --> D

Ablauf

Wenn ich einen Radar-Blog-Eintrag erstellen möchte, exportiere ich die Safari-Bookmarks mit:

Ablage -> Browsingdaten als Datei Exportieren... -> Browsingdaten Exportieren 

Leider kann Safari nur alles auf’s Mal exportieren.

Den Dump kopiere ich dann in meinen VSCode - workspace dieser Homepage und lasse meinen Radar Skill arbeiten:
Ein kleines Python-Skript extrahiert darin deterministisch alle URLs und entfernt Dubletten. Danach übernimmt AI den zweiten Schritt: Titel prüfen, Kategorien zuordnen, knappe Beschreibungen schreiben und daraus einen publizierbaren Blog-Post erzeugen.
Fertig.

Skill

Die Skill-Aufteilung ist pragmatisch:

So entsteht aus unsortierten Bookmarks eine Liste von Technologien, Trends, Tools und Artikeln, die ich hier auf meinen eigenen Blog schnell wieder finde, und die auch irgendwie den Zeigeist dokumentiert.

Für mich ist das so etwas wie ein «Poor man’s AI based Radar Redaction System»: klein, transparent und gut genug, um ohne viel Aufwand aus Bookmark-Chaos eine brauchbare Radar-Notiz zu machen.

Der erste Blog-Beitrag, der so generiert wurde ist: Radar 21. April, alle anderen sind auf meiner Radar-Seite.

Technische Notizen

zum Generieren benutze ich momentan ChatGPT Codex in VSCode.

Die erste Versions meines Skills ist ungefähr:

Skill .agents/skills/radar/SKILL.md

---
name: radar
description: Create a Jekyll Radar post from a Safari bookmarks dump. Categorize each bookmark, resolve an official title, and write a concise factual summary.
allowed-tools: Bash, Read, Write, Edit, MultiEdit, Grep, Glob, Fetch, Playwright
---

# Radar Skill

The Radar Skill turns a Safari bookmarks dump into a publish-ready Radar post for this Jekyll blog. It reviews each bookmark entry, maps it to the most fitting category, and writes a short factual summary for each item.

## Usage

Follow these steps:
1. Take all links from the relevant Safari bookmark `🖥️📡 dump` folder.
2. Process each bookmark entry, categorize it, and fetch a short summary from the web.
3. Produce a formatted Radar post for the current day as a new dated Jekyll post at `_posts/YYYY-MM-DD-radar.md`.

## Input

- Treat the source as a bookmark excerpt or export, not as a full website crawl.
- If Safari exports a full bookmark set, isolate only the relevant `🖥️📡 dump` folder before processing entries.
- Skip duplicate links and non-link entries unless they carry useful metadata.
- Prefer the bookmark title when it is present and useful. If it is missing, resolve the canonical title from the target page.

## Supported Source Formats

The skill should work with the raw Safari export. ^^ inputs are:

- Safari bookmarks HTML export


If the input contains the whole export, first identify the relevant folder `🖥️📡 dump` and ignore everything outside it.

## Parsing Rule

- Prefer a deterministic extraction of the target folder when the source format allows it.
- Ensure full dump coverage: every unique link from the `🖥️📡 dump` folder should appear exactly once in the final categorized post.

## Example

Given a Safari bookmarks excerpt, the Radar Skill should generate a new daily Radar entry for the current date at `_posts/YYYY-MM-DD-radar.md`, not update a yearly Radar file unless explicitly asked.

## Content

The Radar blog entry should have the following structure.

### General Content

The blog post starts with content like this, adapted to today's date:

```markdown

---
layout: post
title: '📡 Tech Radar 2026-04-21'
date: '2026-04-21T10:00:00.000+02:00'
---

📡 This is my personal Tech Radar entry for today. It collects tools, trends, techniques, and platforms I find worth tracking. It has no particular order, no ranking, and it is not complete. It is just a list of things I want to keep in mind.
🤖 This edition is fully generated from a Safari bookmark dump that collects noteworthy technologies.

Remark: this Radar is a dump of interesting things I want to follow, not a mirror of the tools I use in daily work.

# Topics



# 📡 General Radars

<https://www.oreilly.com/radar/topics/radar-trends/> - Der Klassiker von O'Reilly

<https://www.thoughtworks.com/radar> - ThoughtWorks Technology Radar - one more classic

<https://opensource.zalando.com/tech-radar/> - Base of my Radar

<https://roadmap.sh> - Roadmap.sh is a community effort to create roadmaps, guides and other educational content to help guide developers through their career.

<https://endoflife.date/> - End of Life Date - Find out when your software will reach its end of life date.


### Main Content

The rest of the content should be categorized using the sections below, based on the Safari bookmark excerpt.

Each entry should use this format:

    <https://example.com> -- Official Page Title -- Short factual description.

Before writing the final Markdown, replace any literal `|` characters in titles or descriptions with `-` or another safe separator so the layout does not break.

Examples:


<https://dapr.io> -- Dapr (Distributed Application Runtime) -- An open source, portable runtime for building microservices on cloud - APIs for Building Secure and Reliable Microservices and Agentic AI Systems

<https://asana.com/de/resources/team-roles> -- Teamrollen nach Belbin (German) -- Explanation of Belbin's team role model and how balanced team roles improve collaboration.


Use the existing categories first. Add a new category only when a bookmark clearly does not fit anywhere else.

For uncategorized or mixed links, try to invent a new Category 

## Categories


💻 Application Development & Frameworks
  CLI
  Java Backend
  RAD
  GUI
  Static Site Generators
  Output / Rendering
  Document Generation
  Business Process
  Constraint and Simulation
👨‍🎨 Non-Software Apps
📸 Fotografie
📈 Databases
  Data Analysis and BI, Lake, Warehouse
  Graph DB
  Object Storage
🌍 GIS
🤖 Artificial Intelligence
  Tools
  Models
  Model Runners
  LLM
  Linguistics and Knowledge Libraries
🌤️ Cloud Native General
  General Tools
  Backup Tools
📦 Containers
⚓️ Kubernetes
🏗️ Build and Deploy
  DevOps
  GitOps
🔧 Configuration and Infra Deployment
🔭 Observation
  Observability
  Datamesh, Tracing, and Related Topics
  Uptime Monitors
  Log Agents and Frontends
🪙 FinOps
🚦 Reverse Proxy, Gateway, and Related Patterns
👮‍♂️ Tools Security
  SBOM Analysis
  Intrusion Detection
  Security Analysis
📐 Architecture
  Patterns
  Documentation Methodology
  Model Generation Tools
🔐 IAM, Secrets, and Related Topics
  Secrets Management
  IDP
  Certificate Management
📆 Agile / Scrum
👨‍👩‍👦‍👦 Collaboration
📒 PKM Personal Knowledge Management
🕵️‍♂️ Testing and Code Forensics
🖥️ Unix Tools
⚖️ Legal
⚔️ Strategy and Methodology
🔌 API

## Context and Language

Summaries should be short and clear for a CTO or technical reader. They should describe what the tool does and avoid marketing buzzwords such as "shorter time-to-market".

## Writing Rules

- Prefer the official page title when it can be verified.
- If no official product page is bookmarked, keep the bookmarked URL and describe it neutrally as an article, profile, repository, search result, or other page type.
- If the page title cannot be verified, use the bookmark title instead of inventing a new one.
- Keep every summary to one or two sentences.
- Be factual and neutral.
- If a title or summary cannot be verified, say that briefly instead of inventing details.
- If the target page is hard to inspect or verify reliably, keep the bookmark title and state briefly that the exact page purpose could not be confirmed from the saved link alone.
- Normalize or remove `|` characters in titles and summaries before writing Markdown.
- Keep category names stable unless a new category clearly improves clarity.

## Optional Helper Script

For large Safari exports, use the helper script in this folder:

`import_safari_dump.py`

It only extracts links from dump folders and deduplicates them by URL. Categorization and summaries are done by the LLM afterward.

Example:

bash
python3 .agents/skills/radar/import_safari_dump.py \
  --input '/path/to/Lesezeichen.html' \
  --output _drafts/radar-dump-links.md


## Minimal Workflow

1. Run `import_safari_dump.py` on the Safari export to get deduplicated dump links.
2. Feed the parsed link list to the LLM.
3. Let the LLM categorize all entries and generate the final Radar post.


Hinweis: dieser Blog wiederspiegelt meine persönliche Meinung und hat nichts mit meiner Anstellung als Dozent der zhaw noch mit anderen Anstellungen zu tun.


zurück zum Seitenanfang