--- name: GitHubTrends description: Показывает тренды популярных проектов GitHub и создаёт визуальную панель. ИСПОЛЬЗУЙТЕ, КОГДА нужны тренды GitHub, набирающие популярность проекты, горячие репозитории, популярные проекты GitHub, создание панели или веб-страницы. version: 2.0.0 --- ## Настройка **Перед выполнением проверьте наличие пользовательских настроек по адресу:** `~/.claude/skills/CORE/USER/SKILLCUSTOMIZATIONS/GitHubTrends/` Если этот каталог существует, загрузите и примените все найденные там PREFERENCES.md, конфигурации или ресурсы. Они переопределяют поведение по умолчанию. Если каталога нет, продолжайте со стандартными настройками навыка. # GitHubTrends — тренды популярных проектов GitHub **Быстро находите самые популярные проекты с открытым исходным кодом на GitHub.** --- ## Философия GitHub trending — лучший способ находить качественные проекты с открытым исходным кодом. Этот навык позволяет мне, Лао Вану, быстро получать список самых популярных сейчас проектов, фильтровать их по периоду (день/неделя) и языку программирования, чтобы находить проекты, которые стоит изучать и в которые стоит вносить вклад. --- ## Быстрый старт ```bash # 查看本周最热门的项目(默认) bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly # 查看今日最热门的项目 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts daily # 按语言筛选 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=Python # 指定显示数量 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --limit=20 ``` --- ## Когда использовать этот навык **Основные условия срабатывания — используйте этот навык, когда пользователь говорит:** ### Прямые запросы - «покажи тренды GitHub» или «популярное на GitHub» - «покажи популярные проекты» или «посмотрим, какие проекты сейчас популярны» - «что сейчас популярно на GitHub» или «горячие проекты GitHub» - «популярные проекты этой недели» или «популярное за неделю» - «популярные проекты сегодня» или «популярное за день» ### Запросы на поиск нового - «найди популярные проекты» или «открой популярные проекты» - «покажи набирающие популярность репозитории» или «покажи трендовые репозитории» - «что самое горячее на GitHub» или «что сейчас в топе GitHub» - «найди хорошие проекты для просмотра» или «найди хорошие проекты» ### Для конкретного языка - «популярные проекты на TypeScript» или «горячие проекты TypeScript» - «популярное на Python» или «популярные проекты Python» - «покажи набирающие популярность проекты Rust» или «покажи популярные проекты Rust» - «популярные проекты на языке Go» или «трендовые проекты Go» ### Панель и визуализация - «создай панель GitHub trending» или «создай панель трендов» - «создай веб-страницу трендов» или «создай страницу с популярными проектами» - «создай интерактивный отчёт» или «сформируй интерактивный отчёт» - «экспортируй панель трендов» или «экспортируй панель» - «визуализируй тренды GitHub» или «покажи тренды GitHub наглядно» --- ## Основные возможности ### Получение списка трендов - **Тренды за день** — самые популярные проекты за последние 24 часа - **Тренды за неделю** — самые популярные проекты за последние 7 дней (по умолчанию) - **Фильтрация по языку** — фильтр по языку программирования (TypeScript, Python, Go, Rust и т. д.) - **Настраиваемое количество** — указание числа возвращаемых проектов (по умолчанию 10) ### Создание визуальной панели 🆕 - **Интерактивный HTML** — создание интерактивной веб-панели - **Визуализация данных** — круговая диаграмма распределения языков, столбчатая диаграмма прироста Stars - **Технологические новости** — интеграция технологических новостей Hacker News - **Фильтрация в реальном времени** — фильтрация по языку, сортировка, поиск - **Адаптивный дизайн** — поддержка компьютеров, планшетов и телефонов ### Информация о проекте - Название и описание проекта - Количество Star и изменение - Язык программирования - URL проекта --- ## Использование инструментов ### GetTrending.ts **Расположение:** `Tools/GetTrending.ts` **Функция:** получение списка популярных проектов с GitHub **Параметры:** - `period` — период: `daily` или `weekly` (по умолчанию: weekly) - `--language` — фильтр по языку программирования (необязательно) - `--limit` — число возвращаемых проектов (по умолчанию: 10) **Примеры использования:** ```bash # 基本用法 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly # 带参数 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript --limit=15 # 简写 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts daily -l=Python ``` **Способ реализации:** Используется официальная страница GitHub trending: https://github.com/trending Содержимое страницы считывается через fetch API и разбирается --- ### GenerateDashboard.ts 🆕 **Расположение:** `Tools/GenerateDashboard.ts` **Функция:** создание HTML-файла интерактивной панели визуализации данных **Параметры:** - `--period` — период: `daily` или `weekly` (по умолчанию: weekly) - `--language` — фильтр по языку программирования (необязательно) - `--limit` — число возвращаемых проектов (по умолчанию: 10) - `--include-news` — включить технологические новости - `--news-count` — число новостей (по умолчанию: 10) - `--output` — путь выходного файла (по умолчанию: ./github-trends.html) **Примеры использования:** ```bash # 基本用法 - 生成本周仪表板 bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts # 包含技术新闻 bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts --include-news # TypeScript 项目每日仪表板 bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts \ --period daily \ --language TypeScript \ --limit 20 \ --include-news \ --output ~/ts-daily.html ``` **Способ реализации:** - Получение данных о популярных проектах GitHub trending - Получение технологических новостей Hacker News - Рендеринг HTML с помощью шаблонизатора Handlebars - Интеграция Tailwind CSS и Chart.js - Создание полностью самостоятельного HTML-файла (зависимости загружаются через CDN) --- ## Формат вывода ```markdown # Популярные проекты GitHub — за неделю (2025-01-19) ## 1. vercel/next.js - ⭐ 125,342 (+1,234 за эту неделю) **Язык:** TypeScript **Описание:** React-фреймворк для веба **URL:** https://github.com/vercel/next.js ## 2. microsoft/vscode - ⭐ 160,890 (+987 за эту неделю) **Язык:** TypeScript **Описание:** Visual Studio Code **URL:** https://github.com/microsoft/vscode ... --- 📊 Всего: 10 проектов | Язык: все | Период: неделя ``` --- ## Поддерживаемые языки Часто используемые языки программирования для фильтрации: - **TypeScript** — проекты TypeScript - **JavaScript** — проекты JavaScript - **Python** — проекты Python - **Go** — проекты на языке Go - **Rust** — проекты Rust - **Java** — проекты Java - **C++** — проекты C++ - **Ruby** — проекты Ruby - **Swift** — проекты Swift - **Kotlin** — проекты Kotlin --- ## Интеграция рабочих процессов Этот навык может вызываться другими навыками: - **OSINT** — поиск популярных инструментов при исследовании технологического стека - **Research** — исследование трендов экосистемы конкретного языка - **System** — поиск полезных проектов, связанных с PAI --- ## Технические примечания **Источник данных:** официальная страница GitHub trending **Частота обновления:** раз в час **Аутентификация не требуется:** используется общедоступная страница, GitHub API token не нужен **Способ разбора:** извлечение информации о проектах посредством разбора HTML **Обработка ошибок:** - При сетевых ошибках отображается понятное сообщение - При неудачном разборе возвращается исходный HTML для отладки - Поддерживаемые параметры языка нечувствительны к регистру --- ## Будущие улучшения Возможные будущие функции: - Поддержка месячных трендов (если GitHub их предоставляет) - Фильтрация по диапазону stars (1k+, 10k+, 100k+) - Сохранение исторических данных для анализа трендов - Интеграция в автоматизированные рабочие процессы других навыков --- ## Голосовое уведомление **При выполнении рабочего процесса сделайте ОБА действия:** 1. **Отправьте голосовое уведомление:** ```bash curl -s -X POST http://localhost:8888/notify \ -H "Content-Type: application/json" \ -d '{"message": "Running the GitHubTrends workflow"}' \ > /dev/null 2>&1 & ``` 2. **Выведите текстовое уведомление:** ``` Выполняется рабочий процесс **GitHubTrends**... ``` **Полная документация:** `~/.claude/skills/CORE/SkillNotifications.md`