agentsclimarketplace

Shirman digest

Skill jojoprison/shirman-digest/plugins/shirman-digest/skills/shirman-digest

🤖 Claude Code skill for automated AI & Tech trends digest from shir-man.com | Скилл для автоматического дайджеста AI трендов

Install
npx -y skills add jojoprison/shirman-digest --skill shirman-digest

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Собирает дайджест AI & Tech трендов за день с shir-man.com и генерирует красивый HTML-отчёт с вкладками. Используй когда пользователь просит: дайджест, тренды, новости AI, что нового в tech, shirman, shir-man, ежедневный обзор технологий, tech digest, trend report — даже если не упоминает shir-man напрямую.

SKILL.md

11.3 KB, as published. Nobody here has run it

/shirman-digest — Ежедневный дайджест AI & Tech трендов

Скилл автоматически собирает самое важное за день из мира AI и технологий с shir-man.com/homepage/ — SPA-дашборда, агрегирующего GitHub Trending, Hacker News, Lobsters и AI-новости. Результат — готовый HTML-отчёт с 4 вкладками (без дублей), темой и ссылками на оригиналы.

Зачем

shir-man.com — это единственная точка входа для обзора трендов, но сайт SPA без API, данные не парсятся обычным скрапером. Скилл решает эту проблему: навигирует SPA через headless-браузер, параллельно читает статьи, и упаковывает всё в удобный отчёт. Без скилла это занимает 30-40 минут ручной работы.

Алгоритм

Шаг 1: Навигация по SPA (PinchTab)

shir-man.com — SPA, поэтому нужен headless-браузер для навигации. PinchTab snapshot даёт accessibility tree с минимумом токенов.

  1. pinchtab_navigate(url: "https://shir-man.com/homepage/")
  2. pinchtab_wait(seconds: 3) — SPA грузит данные асинхронно
  3. pinchtab_snapshot(filter: "interactive", format: "compact") — получить элементы (~19 нод vs 269 в полном DOM)
  4. Переключить селекторы колонок:
    • Первая колонка: Midjourney → GitHub (самые быстрорастущие репозитории)
    • Третья колонка: Hype Replicate → Lobsters (экспертный контент)
  5. Пройти вкладки внизу (кружочки-переключатели):
    • Собрать: Top signals, HN Best Show, GitHub Fastest rising, Popular
    • Пропустить: Virality map, Topic cloud (визуализации без парсируемых ссылок)
  6. На каждой вкладке: snapshot → извлечь ссылки из StaticText нод

Почему StaticText, а не eval? PinchTab eval возвращает 404 (известный баг #225). Данные извлекаются из snapshot accessibility tree — менее точно, но работает стабильно.

Шаг 1.5: Извлечение URL из ссылок (ОБЯЗАТЕЛЬНО)

PinchTab compact snapshot показывает текст ссылок, но НЕ href. Для каждой карточки в отчёте ОБЯЗАТЕЛЬНА кликабельная ссылка на оригинал. Без ссылки карточка бесполезна.

Способы получения URL:

  1. GitHub репо — URL строится из текста ссылки: https://github.com/{link_text} (текст уже содержит owner/repo)
  2. HN статьи — домен виден в StaticText (напр. GIST.GITHUB.COM, SAMHENRI.GOLD). Для получения точного URL:
    • WebSearch: "{заголовок статьи}" site:{домен} — быстрый поиск точного URL
    • Или: WebFetch("https://hn.algolia.com/api/v1/search?query={title}&tags=story") — HN API возвращает url поле
  3. Lobsters статьи — аналогично HN: домен виден, искать через WebSearch по заголовку + домену
  4. Show HN / Top Signals — ссылки в карусели: кликнуть на link-ноду (pinchtab_click), snapshot → извлечь URL из адресной строки, pinchtab_back для возврата

Правило: Если URL не удалось найти ни одним способом — пометить карточку 🔗 ссылка не найдена и указать домен-источник как текст. Но стремиться к 100% покрытию ссылками.

Параллельность: Запускать WebSearch/WebFetch для разрешения URL параллельно (до 8 одновременно), чтобы не тратить время.

Шаг 2: Чтение статей (WebFetch)

WebFetch в 5-10x эффективнее браузера для чтения контента: параллельный fetch без ожидания рендера.

  1. Собрать уникальные URL из Шага 1.5 + snapshot'ов
  2. Запустить WebFetch параллельно (до 8 одновременно)
  3. Извлечь из каждой статьи: заголовок, ключевые тезисы, практическую ценность
  4. При 404 или ошибке — пропустить без ретрая (URL может быть устаревшим)

Шаг 3: Генерация HTML-отчёта

Создать claudedocs/shir-man-daily-report-YYYY-MM-DD.html.

4 вкладки (без дублей между разделами):

ВкладкаКонтент
GitHub TrendingБыстрорастущие репозитории с описанием
Hacker NewsЛучшие обсуждения и статьи
LobstersЭкспертный технический контент
AI AgentsНовые инструменты и фреймворки

Правило дедупликации: Каждая статья/проект появляется ТОЛЬКО в одной вкладке. Приоритет размещения: AI Agents (если про AI инструмент) → GitHub Trending (если репозиторий) → Hacker News (если HN источник) → Lobsters. Если статья появилась на HN и Lobsters — оставить там где больше очков. Deep Reads, Обзор, Попробовать — УБРАНЫ, их контент распределяется по 4 основным вкладкам.

Убранные вкладки и причины:

  • Обзор — пересказ того что уже есть в остальных вкладках
  • Deep Reads — 100% дубли из HN/Lobsters/AI Agents
  • Попробовать — частично дубли AI Agents + GitHub Trending

Каждая карточка ОБЯЗАТЕЛЬНО содержит:

  • Заголовок + кликабельная ссылка на оригинал (ОБЯЗАТЕЛЬНО! Без ссылки карточка бесполезна — см. Шаг 1.5)
  • Краткое описание (2-3 предложения)
  • Цветной бейдж источника
  • Блок «Ключевой вывод» для важных статей (выделенный фон, 1-2 предложения)

⚠️ НЕ допускается: карточка без <a href="..."> ссылки на оригинальный ресурс. Если URL не разрешён — использовать домен + заголовок в WebSearch.

Стиль отчёта:

CSS variables → тёмная тема по умолчанию, светлая по toggle
Переключатель темы → кнопка в шапке, состояние в localStorage
Бейджи источников → GitHub: зелёный, HN: оранжевый, Lobsters: красный, AI: фиолетовый
Layout → responsive CSS grid, max-width: 1200px, system-ui шрифт
Градиенты → заголовок страницы и заголовки вкладок

Язык: Весь текст на русском. Технические термины (GitHub, Hacker News, API и т.д.) — в оригинале.

HTML skeleton — структура отчёта:

<!DOCTYPE html>
<html lang="ru" data-theme="dark">
<head>
  <meta charset="UTF-8">
  <title>AI & Tech Дайджест — YYYY-MM-DD</title>
  <style>
    :root { --bg: #1a1a2e; --card: #16213e; --text: #e0e0e0; --accent: #7c3aed; }
    [data-theme="light"] { --bg: #f5f5f5; --card: #fff; --text: #1a1a2e; --accent: #6d28d9; }
    body { font-family: system-ui; background: var(--bg); color: var(--text); max-width: 1200px; margin: 0 auto; }
    .badge { padding: 2px 8px; border-radius: 12px; font-size: 0.75rem; }
    .badge-github { background: #22c55e20; color: #22c55e; }
    .badge-hn { background: #f9731620; color: #f97316; }
    .badge-lobsters { background: #ef444420; color: #ef4444; }
    .badge-ai { background: #7c3aed20; color: #7c3aed; }
    .takeaway { background: var(--accent)15; border-left: 3px solid var(--accent); padding: 8px 12px; margin-top: 8px; }
    .tabs button { background: none; border: none; color: var(--text); padding: 8px 16px; cursor: pointer; }
    .tabs button.active { border-bottom: 2px solid var(--accent); }
    .card { background: var(--card); border-radius: 8px; padding: 16px; margin: 8px 0; }
  </style>
</head>
<body>
  <header><!-- Заголовок + theme toggle --></header>
  <nav class="tabs"><!-- 4 вкладки: GitHub Trending, HN, Lobsters, AI Agents --></nav>
  <main><!-- CSS grid карточки --></main>
  <script>/* Theme toggle: localStorage.getItem/setItem('theme') */</script>
</body>
</html>

Шаг 4: Открыть отчёт

open claudedocs/shir-man-daily-report-YYYY-MM-DD.html

Шаг 5: Очистка

pkill -f pinchtab

PinchTab daemon и MCP-процессы остаются жить между сессиями — их нужно убивать после каждого запуска, иначе они накапливаются.

Известные ограничения

ПроблемаПричинаWorkaround
pinchtab_eval → 404Баг PinchTab #225Парсить данные из snapshot StaticText
pinchtab_type не работаетmacOS баг #226Не нужен для этого скилла (только клики)
WebFetch 404 на некоторых URLУстаревшие ссылки или paywallПропускать, не ретраить
Snapshot refs меняютсяОжидаемое поведение после навигацииПере-snapshot после каждого клика
shir-man.com без APISPA рендерит всё на клиентеТолько headless-браузер (PinchTab)

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.