AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Shirman Digest

skill-jojoprison-shirman-digest-shirman-digest · by jojoprison

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

No reviews yet
0 installs
29 views
0.0% view→install

Install

$ agentstack add skill-jojoprison-shirman-digest-shirman-digest

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-jojoprison-shirman-digest-shirman-digest)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Shirman Digest? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

/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 (экспертный контент)
  1. Пройти вкладки внизу (кружочки-переключатели):
  • Собрать: Top signals, HN Best Show, GitHub Fastest rising, Popular
  • Пропустить: Virality map, Topic cloud (визуализации без парсируемых ссылок)
  1. На каждой вкладке: 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 поле
  1. Lobsters статьи — аналогично HN: домен виден, искать через WebSearch по заголовку + домену
  2. 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 предложения)

⚠️ НЕ допускается: карточка без `` ссылки на оригинальный ресурс. Если 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 — структура отчёта:


  
  AI & Tech Дайджест — YYYY-MM-DD
  
    :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; }
  

  
  
  
  /* Theme toggle: localStorage.getItem/setItem('theme') */

Шаг 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 без API | SPA рендерит всё на клиенте | Только headless-браузер (PinchTab) |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.