Communitygithub.com

David-Li0406/meta-skill-evloving

Browser-Automatisierung mit persistentem Seitenstatus. Verwende dies, wenn Nutzer dich bitten, Webseiten zu navigieren, Formulare auszufüllen, Screenshots zu erstellen, Webdaten zu extrahieren, Web-Apps zu testen oder Browser-Workflows zu automatisieren. Auslöserphrasen sind unter anderem „gehe zu [URL]“, „klicke auf“, „fülle das Formular aus“, „mache einen Screenshot“, „scrape“, „automatisiere“, „teste die Webseite“, „melde dich an“ oder jede andere Anfrage zur Browser-Interaktion.

Was ist meta-skill-evloving?

Dieses Skill ermöglicht die browserbasierte Automatisierung mit persistentem Seitenstatus über Skriptausführungen hinweg. Es unterstützt zwei Betriebsmodi: Standalone-Modus, der einen neuen Chromium-Browser startet, und Erweiterungsmodus, der eine Verbindung zum vorhandenen Chrome-Browser des Benutzers herstellt. Der Standalone-Modus eignet sich für frische Automatisierungssitzungen, während der Erweiterungsmodus ideal ist, wenn der Benutzer bereits auf Websites angemeldet ist und Aktionen im Kontext seiner bestehenden Sitzung durchgeführt werden müssen. Das Skill verwendet Playwright für die zugrunde liegende Browser-Automation und bietet eine Client-API zum Erstellen und Verwalten von benannten Seiten sowie Methoden wie getAISnapshot() und selectSnapshotRef() zur Interaktion mit unbekannten Seitenlayouts. Es fördert das Schreiben kleiner, fokussierter Skripte, die nacheinander ausgeführt werden, und bietet eine Fehlerbehebung über Screenshots und Konsolenausgaben, wobei der Seitenstatus auch nach Fehlern erhalten bleibt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/David-Li0406/meta-skill-evloving/tree/HEAD/AgentSkillOS/data/skill_seeds/dev-browser

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Dev Browser Skill

Browser-Automatisierung, die den Seitenstatus über Skriptausführungen hinweg beibehält. Schreibe kleine, fokussierte Skripte, um Aufgaben schrittweise zu erledigen. Sobald du einen Teil eines Workflows nachgewiesen hast und wiederholte Arbeit anfällt, kannst du ein Skript schreiben, um die wiederholte Arbeit in einer einzigen Ausführung zu erledigen.

Wahl des Ansatzes

  • Lokale/quelloffene Seiten: Lies zuerst den Quellcode, um Selektoren direkt zu schreiben
  • Unbekannte Seitenlayouts: Verwende getAISnapshot(), um Elemente zu entdecken und selectSnapshotRef(), um mit ihnen zu interagieren
  • Visuelles Feedback: Erstelle Screenshots, um zu sehen, was der Benutzer sieht

Einrichtung

Zwei Modi verfügbar. Frage den Benutzer, falls unklar, welcher verwendet werden soll.

Standalone-Modus (Standard)

Startet einen neuen Chromium-Browser für frische Automatisierungssitzungen.

./skills/dev-browser/server.sh &

Füge das --headless-Flag hinzu, wenn der Benutzer es wünscht. Warte auf die Ready-Meldung, bevor du Skripte ausführst.

Erweiterungsmodus

Stellt eine Verbindung zum vorhandenen Chrome-Browser des Benutzers her. Verwende dies, wenn:

  • Der Benutzer bereits auf Websites angemeldet ist und du Dinge hinter einer authentifizierten Erfahrung erledigen sollst, die keine lokale Entwicklung ist.
  • Der Benutzer dich bittet, die Erweiterung zu verwenden.

Wichtig: Der Kernablauf bleibt derselbe. Du erstellst benannte Seiten innerhalb seines Browsers.

Starte den Relay-Server:

cd skills/dev-browser && npm i && npm run start-extension &

Warte auf Waiting for extension to connect... gefolgt von Extension connected in der Konsole. So weißt du, dass ein Client verbunden ist und der Browser bereit ist, gesteuert zu werden. Workflow:

  1. Skripte rufen client.page(„name“) auf, genau wie im normalen Modus, um neue Seiten zu erstellen / mit bestehenden zu verbinden.
  2. Die Automatisierung läuft in der tatsächlichen Browsersitzung des Benutzers.

Wenn die Erweiterung noch nicht verbunden ist, sage dem Benutzer, er soll sie starten und aktivieren. Download-Link: https://github.com/SawyerHood/dev-browser/releases

Schreiben von Skripten

Führe alle Skripte aus dem Verzeichnis skills/dev-browser/ aus. Der Import-Alias @/ erfordert die Konfiguration dieses Verzeichnisses.

Führe Skripte inline mit Heredocs aus:

cd skills/dev-browser && npx tsx <<'EOF'
import { connect, waitForPageLoad } from "@/client.js";

const client = await connect();
// Erstelle eine Seite mit benutzerdefinierter Viewport-Größe (optional)
const page = await client.page("example", { viewport: { width: 1920, height: 1080 } });

await page.goto("https://example.com");
await waitForPageLoad(page);

console.log({ title: await page.title(), url: page.url() });
await client.disconnect();
EOF

Schreibe nur dann in tmp/-Dateien, wenn das Skript wiederverwendet werden muss, komplex ist oder der Benutzer es explizit anfordert.

Schlüsselprinzipien

  1. Kleine Skripte: Jedes Skript macht EINE Sache (navigieren, klicken, ausfüllen, prüfen)
  2. Zustand auswerten: Protokolliere/gib den Zustand am Ende zurück, um nächste Schritte zu entscheiden
  3. Beschreibende Seitennamen: Verwende „checkout“, „login“, nicht „main“
  4. Trennen zum Beenden: await client.disconnect() – Seiten bleiben auf dem Server bestehen
  5. Einfaches JS in evaluate: page.evaluate() läuft im Browser – keine TypeScript-Syntax

Workflow-Schleife

Folge diesem Muster für komplexe Aufgaben:

  1. Schreibe ein Skript, um eine Aktion auszuführen
  2. Führe es aus und beobachte die Ausgabe
  3. Werte aus – hat es funktioniert? Wie ist der aktuelle Zustand?
  4. Entscheide – ist die Aufgabe erledigt oder brauchen wir ein weiteres Skript?
  5. Wiederhole, bis die Aufgabe erledigt ist

Kein TypeScript im Browser-Kontext

Code, der an page.evaluate() übergeben wird, läuft im Browser, der kein TypeScript versteht:

// ✅ Richtig: normales JavaScript
const text = await page.evaluate(() => {
  return document.body.innerText;
});

// ❌ Falsch: TypeScript-Syntax führt zur Laufzeit zu Fehlern
const text = await page.evaluate(() => {
  const el: HTMLElement = document.body; // Typannotation bricht im Browser!
  return el.innerText;
});

Daten scrapen

Zum Scrapen großer Datensätze solltest du Netzwerkanfragen abfangen und wiederholen, anstatt durch das DOM zu scrollen. Siehe references/scraping.md für die vollständige Anleitung zu Request-Erfassung, Schema-Erkennung und paginierter API-Wiedergabe.

Client-API

const client = await connect();

// Hole oder erstelle eine benannte Seite (Viewport gilt nur für neue Seiten)
const page = await client.page("name");
const pageWithSize = await client.page("name", { viewport: { width: 1920, height: 1080 } });

const pages = await client.list(); // Liste aller Seitennamen
await client.close("name"); // Schließe eine Seite
await client.disconnect(); // Trennen (Seiten bleiben bestehen)

// ARIA-Snapshot-Methoden
const snapshot = await client.getAISnapshot("name"); // Hole den Accessibility-Baum
const element = await client.selectSnapshotRef("name", "e5"); // Hole Element per Referenz

Das page-Objekt ist eine standardmäßige Playwright Page.

Warten

import { waitForPageLoad } from "@/client.js";

await waitForPageLoad(page); // Nach der Navigation
await page.waitForSelector(".results"); // Auf bestimmte Elemente warten
await page.waitForURL("**/success"); // Auf bestimmte URL warten

Seitenzustand inspizieren

Screenshots

await page.screenshot({ path: "tmp/screenshot.png" });
await page.screenshot({ path: "tmp/full.png", fullPage: true });

ARIA-Snapshot (Elementerkennung)

Verwende getAISnapshot(), um Seitenelemente zu entdecken. Gibt den Accessibility-Baum im YAML-Format zurück:

- banner:
  - link "Hacker News" [ref=e1]
  - navigation:
    - link "new" [ref=e2]
- main:
  - list:
    - listitem:
      - link "Article Title" [ref=e8]
      - link "328 comments" [ref=e9]
- contentinfo:
  - textbox [ref=e10]
    - /placeholder: "Search"

Interpretation von refs:

  • [ref=eN] – Elementreferenz für Interaktion (nur sichtbare, klickbare Elemente)
  • [checked], [disabled], [expanded] – Elementzustände
  • [level=N] – Überschriftenebene
  • /url:, /placeholder: – Elementeigenschaften

Interaktion mit refs:

const snapshot = await client.getAISnapshot("hackernews");
console.log(snapshot); // Finde die benötigte Referenz

const element = await client.selectSnapshotRef("hackernews", "e2");
await element.click();

Fehlerbehebung

Der Seitenzustand bleibt nach Fehlern bestehen. Fehlersuche mit:

cd skills/dev-browser && npx tsx <<'EOF'
import { connect } from "@/client.js";

const client = await connect();
const page = await client.page("hackernews");

await page.screenshot({ path: "tmp/debug.png" });
console.log({
  url: page.url(),
  title: await page.title(),
  bodyText: await page.textContent("body").then((t) => t?.slice(0, 200)),
});

await client.disconnect();
EOF

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

David-Li0406/meta-skill-evloving

Create technical diagrams using Mermaid syntax for architecture, sequences, ERDs, flowcharts, and state machines. Use for visualizing system design, data flows, and processes. Triggers: diagram, mermaid, architecture diagram, sequence diagram, flowchart, ERD, entity relationship, state diagram, C4 model, component diagram, visualize, draw.

David-Li0406/meta-skill-evloving

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

David-Li0406/meta-skill-evloving

Complete color manipulation and green screen effects system. PROACTIVELY activate for: (1) Green screen/chromakey removal, (2) Color grading with LUTs, (3) Color correction (levels, curves, white balance), (4) Colorkey/color removal effects, (5) Hue/saturation manipulation, (6) Color space conversions (BT.709, BT.2020, HDR), (7) Color isolation effects, (8) Teal and orange look, (9) Vintage/film looks, (10) Color keying for transparency. Provides: chromakey and colorkey filters, LUT application (lut3d), curves and levels adjustment, color balance, selective color manipulation, color space handling, HDR tone mapping, professional color grading chains.

David-Li0406/meta-skill-evloving

Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.

David-Li0406/meta-skill-evloving

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

David-Li0406/meta-skill-evloving

Build with OpenAI's stateless APIs - Chat Completions (GPT-5, GPT-4o), Embeddings, Images (DALL-E 3), Audio (Whisper + TTS), and Moderation. Includes Node.js SDK and fetch-based approaches for Cloudflare Workers. Use when: implementing chat completions with GPT-5/GPT-4o, streaming responses with SSE, using function calling/tools, creating structured outputs with JSON schemas, generating embeddings for RAG (text-embedding-3-small/large), generating images with DALL-E 3, editing images with GPT-Image-1, transcribing audio with Whisper, synthesizing speech with TTS (11 voices), moderating content (11 safety categories), or troubleshooting rate limits (429), invalid API keys (401), function calling failures, streaming parse errors, embeddings dimension mismatches, or token limit exceeded.

David-Li0406/meta-skill-evloving

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

David-Li0406/meta-skill-evloving

Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks

David-Li0406/meta-skill-evloving

Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas

David-Li0406/meta-skill-evloving

Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.

David-Li0406/meta-skill-evloving

Best practices for Remotion - Video creation in React

David-Li0406/meta-skill-evloving

Provides bidirectional translation (Chinese/English), grammar checking, and sentence polishing. Supports specific tense constraints, context-aware tone adjustment, and natural expression optimization. Outputs direct text without formatting.

David-Li0406/meta-skill-evloving

指导如何通过自定义注解(如@Unicom)标识Dubbo接口,利用BeanDefinitionRegistryPostProcessor在启动时扫描并动态注册ReferenceBean,实现RPC调用的封装。

David-Li0406/meta-skill-evloving

生成Python脚本,利用FFmpeg将图片序列按3x3布局合并,或将合并图拆分。要求使用subprocess模块执行命令,并支持用户交互式输入路径。

David-Li0406/meta-skill-evloving

SOP for extracting and analyzing promotional activity details, handling time formatting, location mapping, payment logic, and step-by-step process validation.

David-Li0406/meta-skill-evloving

Specializes in creating TikTok short video scripts using an anthropomorphic 'Chef' perspective to explain wildlife food chains and survival environments, utilizing real field footage.

David-Li0406/meta-skill-evloving

针对TikTok平台,以拟人化视角(如动物作为厨师)创作系列短视频脚本。重点介绍野生动物、食物链及生态环境,要求使用野外实拍素材,风格幽默且具有教育意义。

David-Li0406/meta-skill-evloving

Generates KWL (Know, Want to know, Learned) charts for educational videos, specifically BrainPOP, using simple 7th-grade language and short, concise bullet points.

David-Li0406/meta-skill-evloving

Develops DAX measures to calculate promo and regular volumes and generates a calculated table of dates excluding continuous promo date ranges, handling multiple periods and nulls.

David-Li0406/meta-skill-evloving

Tracks complex, multi-session work using the Beads issue tracker and dependency graphs, and provides persistent memory that survives conversation compaction. Use when work spans multiple sessions, has complex dependencies, or needs persistent context across compaction cycles. Trigger with phrases like "create task for", "what's ready to work on", "show task", "track this work", "what's blocking", or "update status".

Verwandte Skills