{"items":[{"slug":"source-brief","kind":"skill","title":"Ответ по документам","description":"Сопоставить файлы, найти противоречия и связать каждый вывод с источником.","applications":["Сопоставить план и отчёт перед запуском.","Найти противоречия в нескольких документах.","Подготовить ответ, в котором каждый вывод связан с источником."],"outcome":"Ответ со ссылками на исходники, расхождениями и открытыми вопросами.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/source-brief?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/source-brief?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/source-brief","download":"https://kossolapov.com/downloads/materials/ru/source-brief.zip","source":null,"package":null},{"slug":"skill-audit","kind":"skill","title":"Починить инструкции агента","description":"Найти в SKILL.md и AGENTS.md лишние требования и конфликтующие правила.","applications":["Разобраться, почему агент читает лишние файлы.","Найти конфликтующие правила в SKILL.md или AGENTS.md.","Сократить инструкции без потери важных ограничений."],"outcome":"Список проблем с точными цитатами и минимальными предложенными правками.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/skill-audit?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/skill-audit?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/skill-audit","download":"https://kossolapov.com/downloads/materials/ru/skill-audit.zip","source":null,"package":null},{"slug":"research-brief","kind":"skill","title":"Исследование с источниками","description":"Собрать ответ на рабочий вопрос, проверить первоисточники и показать, где данных не хватает.","applications":["Сравнить сервисы под требования команды.","Проверить утверждение по первичным источникам.","Отделить известные факты от вопросов, требующих проверки."],"outcome":"Краткая справка с источниками, критериями сравнения и пробелами в данных.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/research-brief?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/research-brief?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/research-brief","download":"https://kossolapov.com/downloads/materials/ru/research-brief.zip","source":null,"package":null},{"slug":"interview-patterns","kind":"skill","title":"Разбор интервью","description":"Выделить задачи и повторяющиеся проблемы из интервью, сохранив цитаты и контекст.","applications":["Свести несколько пользовательских интервью.","Найти повторяющиеся боли и задачи клиентов.","Проверить гипотезу, сохранив примеры и исключения."],"outcome":"Темы и закономерности с цитатами, частотой упоминаний и ограничениями выборки.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/interview-patterns?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/interview-patterns?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/interview-patterns","download":"https://kossolapov.com/downloads/materials/ru/interview-patterns.zip","source":null,"package":null},{"slug":"decision-memo","kind":"skill","title":"Записка для решения","description":"Сравнить варианты по явным критериям и предложить решение с условиями пересмотра.","applications":["Выбрать между покупкой сервиса и собственной разработкой.","Сравнить варианты при ограниченном бюджете и сроках.","Зафиксировать, при каких условиях решение нужно пересмотреть."],"outcome":"Записка с вариантами, критериями, рекомендацией и условиями пересмотра.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/decision-memo?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/decision-memo?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/decision-memo","download":"https://kossolapov.com/downloads/materials/ru/decision-memo.zip","source":null,"package":null},{"slug":"plain-editor","kind":"skill","title":"Редактор ясного текста","description":"Убрать канцелярит и повторения, сохранив голос автора, факты и степень уверенности.","applications":["Сократить пост или письмо, сохранив авторский голос.","Убрать канцелярит и повторения из текста.","Сделать сложное объяснение понятнее без изменения фактов."],"outcome":"Отредактированный текст с сохранёнными фактами, цифрами и оговорками.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/plain-editor?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/plain-editor?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/plain-editor","download":"https://kossolapov.com/downloads/materials/ru/plain-editor.zip","source":null,"package":null},{"slug":"content-repurpose","kind":"skill","title":"Один материал — разные форматы","description":"Превратить исходный текст в пост, письмо или сценарий, не придумывая новые факты.","applications":["Сделать Telegram-пост из длинного материала.","Адаптировать статью для рассылки.","Собрать короткий видеосценарий на основе готового текста."],"outcome":"Версии для выбранных форматов без новых неподтверждённых утверждений.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/content-repurpose?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/content-repurpose?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/content-repurpose","download":"https://kossolapov.com/downloads/materials/ru/content-repurpose.zip","source":null,"package":null},{"slug":"meeting-actions","kind":"skill","title":"Из встречи в задачи","description":"Извлечь решения, ответственных и сроки из расшифровки, отделив договорённости от идей.","applications":["Превратить расшифровку встречи в список действий.","Найти договорённости, ответственных и сроки.","Отделить принятые решения от идей, которые только обсудили."],"outcome":"Протокол с решениями, задачами и явно отмеченными неизвестными.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/meeting-actions?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/meeting-actions?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/meeting-actions","download":"https://kossolapov.com/downloads/materials/ru/meeting-actions.zip","source":null,"package":null},{"slug":"product-brief","kind":"skill","title":"Из идеи в понятное ТЗ","description":"Описать пользовательскую задачу, границы первой версии и проверяемые критерии готовности.","applications":["Описать проблему пользователя перед разработкой.","Определить границы MVP.","Согласовать, по каким признакам команда примет результат."],"outcome":"Краткий продуктовый бриф: проблема, сценарии, границы и критерии приёмки.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/product-brief?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/product-brief?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/product-brief","download":"https://kossolapov.com/downloads/materials/ru/product-brief.zip","source":null,"package":null},{"slug":"reproducible-bug","kind":"skill","title":"Баг, который можно повторить","description":"Превратить «не работает» в точный сценарий, ожидаемый результат и проверяемый отчёт.","applications":["Передать разработчику воспроизводимую ошибку.","Уточнить, когда ломается форма или скачивание.","Собрать наблюдения и шаги без догадок о причине."],"outcome":"Баг-репорт с шагами, ожидаемым и фактическим результатом и доказательствами.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/reproducible-bug?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/reproducible-bug?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/reproducible-bug","download":"https://kossolapov.com/downloads/materials/ru/reproducible-bug.zip","source":null,"package":null},{"slug":"csv-review","kind":"skill","title":"Проверка таблицы перед анализом","description":"Найти пропуски, дубли, смешанные единицы и неоднозначные даты до расчётов.","applications":["Проверить таблицу перед расчётом выручки.","Найти дубликаты, пропуски и смешанные единицы измерения.","Разобраться с неоднозначными датами до анализа."],"outcome":"Отчёт о качестве данных и список уточнений без изменения исходного файла.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/csv-review?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/csv-review?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/csv-review","download":"https://kossolapov.com/downloads/materials/ru/csv-review.zip","source":null,"package":null},{"slug":"change-review","kind":"skill","title":"Ревью изменения","description":"Проверить конкретный diff на ошибки поведения и регрессии с привязкой к строкам.","applications":["Проверить diff перед слиянием изменений.","Найти регрессии и ошибки поведения.","Оценить, что изменится для пользователя после правки."],"outcome":"Замечания по существу с местом в коде, сценарием ошибки и последствиями.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/change-review?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/change-review?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/change-review","download":"https://kossolapov.com/downloads/materials/ru/change-review.zip","source":null,"package":null},{"slug":"task-brief","kind":"template","title":"Задание для агента","description":"Шаблон запроса с контекстом, исходниками, границами и признаками готового результата.","applications":["Поставить агенту задачу с понятным результатом.","Собрать контекст и исходники в одном месте.","Определить, что входит в работу, а что остаётся за её пределами."],"outcome":"Заполненный бриф с задачей, исходниками, ограничениями и критериями готовности.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/task-brief?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/task-brief?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/task-brief","download":"https://kossolapov.com/downloads/materials/ru/task-brief.md","source":null,"package":null},{"slug":"project-instructions","kind":"template","title":"AGENTS.md для проекта","description":"Короткая заготовка: структура проекта, рабочие команды и критерии завершения без лишних правил.","applications":["Подготовить короткий AGENTS.md для проекта.","Записать реальные команды запуска и проверки.","Уточнить правила работы, сохранив уже существующие инструкции."],"outcome":"Основа проектных инструкций с проверяемыми командами и правилами завершения работы.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/project-instructions?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/project-instructions?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/project-instructions","download":"https://kossolapov.com/downloads/materials/ru/project-instructions.md","source":null,"package":null},{"slug":"source-matrix","kind":"template","title":"Таблица доказательств","description":"Зафиксировать, какое утверждение на чём основано, и не потерять даты и противоречия.","applications":["Проверить доказательства для ключевых утверждений.","Сопоставить источники с разными датами и выводами.","Увидеть, каким тезисам пока не хватает подтверждения."],"outcome":"Таблица «утверждение — источник — подтверждение — ограничения».","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/source-matrix?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/source-matrix?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/source-matrix","download":"https://kossolapov.com/downloads/materials/ru/source-matrix.md","source":null,"package":null},{"slug":"acceptance-criteria","kind":"template","title":"Критерии приёмки","description":"Описать, что именно должно работать, включая ошибки, пустые состояния и сохранность данных.","applications":["Описать, когда функция считается готовой.","Продумать ошибки и пустые состояния формы.","Согласовать проверку сохранения данных."],"outcome":"Набор проверяемых сценариев с ожидаемым результатом.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/acceptance-criteria?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/acceptance-criteria?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/acceptance-criteria","download":"https://kossolapov.com/downloads/materials/ru/acceptance-criteria.md","source":null,"package":null},{"slug":"experiment-card","kind":"template","title":"Карточка эксперимента","description":"Заранее записать гипотезу, метрику, ограничения и решение по результатам проверки.","applications":["Проверить гипотезу до масштабной разработки.","Заранее выбрать метрику и правило принятия решения.","Сравнить результат эксперимента с исходными ожиданиями."],"outcome":"Карточка эксперимента: гипотеза, метод, метрика, ограничения и правило решения.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/experiment-card?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/experiment-card?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/experiment-card","download":"https://kossolapov.com/downloads/materials/ru/experiment-card.md","source":null,"package":null},{"slug":"handoff-note","kind":"template","title":"Передача задачи без потери контекста","description":"Передать работу другому человеку или агенту: состояние, решения, файлы и следующий шаг.","applications":["Передать незавершённую работу коллеге или агенту.","Сохранить решения и ссылки на нужные файлы.","Указать следующий шаг и отделить готовое от начатого."],"outcome":"Заметка для продолжения работы со статусом, контекстом и следующим действием.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/handoff-note?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/handoff-note?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/handoff-note","download":"https://kossolapov.com/downloads/materials/ru/handoff-note.md","source":null,"package":null},{"slug":"output-check","kind":"checklist","title":"Проверка ответа AI","description":"Проверить факты, расчёты и соответствие запросу перед использованием результата.","applications":["Проверить ответ агента перед отправкой клиенту.","Сверить факты, расчёты и соответствие задаче.","Увидеть, какие части результата ещё не проверены."],"outcome":"Список найденных проблем и непроверенных утверждений.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/output-check?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/output-check?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/output-check","download":"https://kossolapov.com/downloads/materials/ru/output-check.md","source":null,"package":null},{"slug":"skill-readiness","kind":"checklist","title":"Готов ли скилл к работе","description":"Проверить назначение, содержимое, активацию и границы навыка на реальных запросах.","applications":["Проверить новый скилл перед использованием.","Уточнить, когда он должен и не должен включаться.","Прогнать примеры с полной и недостающей информацией."],"outcome":"Проверка назначения, границ и поведения скилла на разных сценариях.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/skill-readiness?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/skill-readiness?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/skill-readiness","download":"https://kossolapov.com/downloads/materials/ru/skill-readiness.md","source":null,"package":null},{"slug":"source-check","kind":"checklist","title":"Можно ли доверять источнику","description":"Отделить первичное свидетельство от пересказа и проверить, насколько источник подходит к вопросу.","applications":["Отличить первичный источник от пересказа.","Проверить, действительно ли ссылка подтверждает тезис.","Сопоставить несколько источников перед публикацией."],"outcome":"Оценка источников с указанием того, что каждый из них подтверждает.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/source-check?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/source-check?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/source-check","download":"https://kossolapov.com/downloads/materials/ru/source-check.md","source":null,"package":null},{"slug":"data-preparation","kind":"checklist","title":"Подготовить данные для агента","description":"Передать достаточно контекста и нужные файлы, сохранив структуру, версии и чувствительные данные.","applications":["Подготовить документы перед передачей агенту.","Проверить версии, полноту контекста и доступность файлов.","Убрать данные, которые не нужны для задачи."],"outcome":"Проверенный набор исходников и список недостающей информации.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/data-preparation?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/data-preparation?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/data-preparation","download":"https://kossolapov.com/downloads/materials/ru/data-preparation.md","source":null,"package":null},{"slug":"instruction-conflicts","kind":"checklist","title":"Почему агент застрял","description":"Найти правило, из-за которого агент читает лишнее, повторяет проверки или прекращает работу.","applications":["Найти правило, которое заставляет агента останавливаться.","Убрать повторяющиеся проверки и лишнее чтение.","Разобрать конфликт нескольких уровней инструкций."],"outcome":"Точная конфликтующая формулировка и предложение минимального изменения.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/instruction-conflicts?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/instruction-conflicts?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/instruction-conflicts","download":"https://kossolapov.com/downloads/materials/ru/instruction-conflicts.md","source":null,"package":null},{"slug":"website-check","kind":"checklist","title":"Проверка сайта перед публикацией","description":"Пройти пользовательский путь: ссылки, формы, мобильная версия, скачивания и ошибки.","applications":["Подготовить сайт к публикации.","Проверить навигацию, формы и скачивание файлов.","Учесть мобильный экран, ошибки и пустые состояния."],"outcome":"Чек-лист проверки сайта с наблюдаемыми результатами и оставшимися проблемами.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/website-check?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/website-check?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/website-check","download":"https://kossolapov.com/downloads/materials/ru/website-check.md","source":null,"package":null},{"slug":"react-performance","kind":"skill","title":"Ускорить React и Next.js","description":"Найти последовательные запросы, тяжёлые импорты и лишние рендеры. Правила Vercel помогают начать с изменений, которые стоит измерить первыми.","applications":["Разобрать медленную загрузку страницы Next.js","Сократить клиентский JavaScript","Проверить получение данных и границы серверных компонентов"],"outcome":"Приоритетный список изменений с примерами кода и планом замеров.","githubRepo":"vercel-labs/agent-skills","markdown":"https://kossolapov.com/api/public/materials/react-performance?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/react-performance?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/react-performance","download":null,"source":{"mode":"link-only","originalName":"vercel-react-best-practices","author":{"name":"Vercel Engineering","url":"https://github.com/vercel-labs","attribution":"Original skill: Vercel Engineering. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Vercel Engineering. Редакционное описание: kossolapov.com."},"repository":"vercel-labs/agent-skills","path":"skills/react-best-practices/SKILL.md","revision":"063bee94c3f4df8453406c830b0a7df0f2860278","url":"https://github.com/vercel-labs/agent-skills/blob/063bee94c3f4df8453406c830b0a7df0f2860278/skills/react-best-practices/SKILL.md","license":{"name":"MIT","url":"https://github.com/vercel-labs/agent-skills/blob/063bee94c3f4df8453406c830b0a7df0f2860278/README.md","evidenceType":"source-reference"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["React/Next.js project; code editor and project build tools","Browser profiler or bundle analyzer to verify performance"],"keys":[],"paidDependencies":[],"limitations":["Rules must match the installed React and Next.js versions.","Performance gains depend on the application and require measurement.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"README.md","sha256":"7c02f64b08fc6c4eef03c01d64f3e2ed478193ccfcbd14edba379abe23304651","bytes":7838,"role":"upstream"},{"path":"skills/react-best-practices/AGENTS.md","sha256":"fc93e7421177bbf869cce892bc60a6c83a4517d974bc3bf65c4e2c1e58a6ccf6","bytes":108261,"role":"upstream"},{"path":"skills/react-best-practices/README.md","sha256":"9eafb2123d3b8b2aef41fba0db2648a3f4f49996f8c7c8bb2c86263befd8b48a","bytes":3360,"role":"upstream"},{"path":"skills/react-best-practices/SKILL.md","sha256":"71ed7794962fa6e803ee83030517b5b93a9f70fbfeb431ec4535c5480a8d8355","bytes":7251,"role":"upstream"},{"path":"skills/react-best-practices/metadata.json","sha256":"c4e18bac3290fbe1b471a605867d4df68b03144ea26b8befdbe8f9d8fd124354","bytes":921,"role":"upstream"},{"path":"skills/react-best-practices/rules/_sections.md","sha256":"01c59969e4e867f0708c8f8ef9c6d87fab9a07d0586244f429ff84013db8a115","bytes":1554,"role":"upstream"},{"path":"skills/react-best-practices/rules/_template.md","sha256":"99df2a3ea088c6c22de2484ddc7e964d0e9923846f44c63380343ecc64455442","bytes":631,"role":"upstream"},{"path":"skills/react-best-practices/rules/advanced-effect-event-deps.md","sha256":"55ed8f9f27a1bff803d6fa55828176207714b02123cbb97ddb8a90d88024a723","bytes":1802,"role":"upstream"},{"path":"skills/react-best-practices/rules/advanced-event-handler-refs.md","sha256":"a3097edeecfb2ff6851cd66ed8cdf0617c3c88180504bee824aa6e75a215bbbc","bytes":1483,"role":"upstream"},{"path":"skills/react-best-practices/rules/advanced-init-once.md","sha256":"3e4dc22173eb0e2b6dcf583e3babd862b8696328f8f59aee7c4d746c5bc05f6c","bytes":958,"role":"upstream"},{"path":"skills/react-best-practices/rules/advanced-use-latest.md","sha256":"8a3f64dfe5a77d1564248faf17fe662ae75b55d497a243cb30b38eb07ccbbf9a","bytes":1072,"role":"upstream"},{"path":"skills/react-best-practices/rules/async-api-routes.md","sha256":"523338540d73427dc14c0cbb19f2741ebccdf8b105a7b2c1b33d2905cf237a42","bytes":1125,"role":"upstream"},{"path":"skills/react-best-practices/rules/async-cheap-condition-before-await.md","sha256":"03107c1f70a293cd58a8abc5474c5548e20ea4efdf01b6d45aae7ad0ac1cb32c","bytes":1220,"role":"upstream"},{"path":"skills/react-best-practices/rules/async-defer-await.md","sha256":"f3c142d090615abdcc99d31c123be37b31f0f1ed8d9ec9f7789a3bc6883ae0fb","bytes":2208,"role":"upstream"},{"path":"skills/react-best-practices/rules/async-dependencies.md","sha256":"16ef469f877e30c6b8e1e1b4bc3e527312fa3c6318cb785a4eca186ea236131a","bytes":1293,"role":"upstream"},{"path":"skills/react-best-practices/rules/async-parallel.md","sha256":"6d2f841896279e976dfcdc1ac89e70771ac188baadfd43c096b5706cb838b961","bytes":654,"role":"upstream"},{"path":"skills/react-best-practices/rules/async-suspense-boundaries.md","sha256":"de05fedac2eb7ae563b887b5a424464ec3dfaf84e5b7797467ebe2a796ac8afc","bytes":2510,"role":"upstream"},{"path":"skills/react-best-practices/rules/bundle-analyzable-paths.md","sha256":"62090b5c815fd71bf1133dce754f51abc16a9456d0ccd025fd627de27726e92a","bytes":2382,"role":"upstream"},{"path":"skills/react-best-practices/rules/bundle-barrel-imports.md","sha256":"e648f6d54525f07a691357040ca5bff6ea3424788a91ff63812adb29622a671b","bytes":2795,"role":"upstream"},{"path":"skills/react-best-practices/rules/bundle-conditional.md","sha256":"09c8259c3efb04fc0abb8e412ccbda217c222ae8118516283e571c995fe3a7d4","bytes":949,"role":"upstream"},{"path":"skills/react-best-practices/rules/bundle-defer-third-party.md","sha256":"3719fb47b191e8db4fe22686ec88448ad5af9e6838585425abbe103d0b642e37","bytes":920,"role":"upstream"},{"path":"skills/react-best-practices/rules/bundle-dynamic-imports.md","sha256":"401817a7369f315fc5a68a1095742ff7d53d0461906880dc9d64a41495ee1986","bytes":791,"role":"upstream"},{"path":"skills/react-best-practices/rules/bundle-preload.md","sha256":"d1f7cc28da7cd5ab249acd287edc5b761afcfb194e9cb62cd44c5f3543db2de2","bytes":1149,"role":"upstream"},{"path":"skills/react-best-practices/rules/client-event-listeners.md","sha256":"242a873349febc1ce685e85617994784dbab92c2eaa68aed7fed5a83e7680e93","bytes":1969,"role":"upstream"},{"path":"skills/react-best-practices/rules/client-localstorage-schema.md","sha256":"0fb7cdf9dc93fdf22f87e3669f953fb9d4ac9b0be42eec4a29fe9a2560610b88","bytes":1950,"role":"upstream"},{"path":"skills/react-best-practices/rules/client-passive-event-listeners.md","sha256":"1f35016f9053de69e884ee9be00654e37979c2ca85f5e57764dc2626ff7acb4b","bytes":1644,"role":"upstream"},{"path":"skills/react-best-practices/rules/client-swr-dedup.md","sha256":"644652c39c6cc00de8d1c77a7273612e868dc3f7edda30764164c12ec0f764a3","bytes":1159,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-batch-dom-css.md","sha256":"480b891b9eaf96e929dc1e964274a4828e3a78009b7d00ccd965a0d425215959","bytes":3266,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-cache-function-results.md","sha256":"3daaa11d24f4295cb6be8bc6f407f2ce83cc7b5bd1f0e68891ea8ab835721dc7","bytes":1949,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-cache-property-access.md","sha256":"73e47431e74878a927061bf0ddc7cd91a7556cb35d2573f3421e82300d9ae311","bytes":532,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-cache-storage.md","sha256":"11b826b0433898c1ece2d3547010d8e77db9fb240185748c45db91493de9b6cc","bytes":1651,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-combine-iterations.md","sha256":"71add08aeeb43091d4ff4c0b2842cce8b4bdef8ad3e732cc034bb5a84827e746","bytes":753,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-early-exit.md","sha256":"925ce5ce87f3347186ca62212f29cc6baa2b8c85a96d2720ad07c3d0abf781c0","bytes":1133,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-flatmap-filter.md","sha256":"9e5b166a41914d975bef7635467f8fb32cd98b5c3126c0bc6f163490812fb5f0","bytes":1411,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-hoist-regexp.md","sha256":"f9e9aef2f7c2307dd7310f283df85dcada45fc43e9bb941b0c3aa414dec21ec4","bytes":1028,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-index-maps.md","sha256":"5df1bdc2cfabb2c98abd55d26762e5c18189535c2e686184f426082e62920391","bytes":837,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-length-check-first.md","sha256":"8b54a311c826b299272f29187fc58bc55772a04c4a72eeb29456ee96dc9fc624","bytes":1747,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-min-max-loop.md","sha256":"87dfb67e2f39df6ad8bcfb5b78c5fb364d3c07554ad188a202408d99f3763421","bytes":2290,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-request-idle-callback.md","sha256":"ee08f83905b4011abbc33d594033157d77561b5bbd9b36b04f0f409581ffec32","bytes":2647,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-set-map-lookups.md","sha256":"a7fd781a6ba9ad49065961b6f9a90ef486bf6b648390e1a08704025f98e1642b","bytes":532,"role":"upstream"},{"path":"skills/react-best-practices/rules/js-tosorted-immutable.md","sha256":"d0a5e1b0fec48a0a81397957e2f068e224329f7c42cb5feeed8aae6fa64025e8","bytes":1782,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-activity.md","sha256":"1e5e7eaf3555e61d6a2e900089c676527d26259501db5594f59544b6c664f85a","bytes":564,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-animate-svg-wrapper.md","sha256":"9c6ae0ca7a51434e803887c64cded760956579a1452ccb80a461a03f9c937c77","bytes":1185,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-conditional-render.md","sha256":"2ec2fa23c4148285144687050c52369adba3da2fbe3d486f8d3e0aad8f06f2bc","bytes":980,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-content-visibility.md","sha256":"64eee6d5b916fe74df33363994b27fc7f71bea3bcedc7ee04bda23107ca3e6e4","bytes":815,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-hoist-jsx.md","sha256":"93b229560fae92005ed9a2a829064607b39b2e984e92d221d05b2d41df2b7c0e","bytes":1039,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-hydration-no-flicker.md","sha256":"dc7ab358c67c177bca6e6f360fbc935ebe4efa928c0ba3ebd3f9f3d9e2000ca3","bytes":2308,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-hydration-suppress-warning.md","sha256":"915bacb934e2927d84b37a3f3d225a47b309ac8f9e494ed2bcb66ce07c5676a2","bytes":872,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-resource-hints.md","sha256":"351b1095d641717b930f1b2253282b7120af3023bc74e06c17675168d4286864","bytes":2549,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-script-defer-async.md","sha256":"4cea07b7875ba7fc2c7465ff23b63a2bb334f90aaf2d9293d38d67b05fdb32ab","bytes":1868,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-svg-precision.md","sha256":"ed468533f6e95f622859c884b122cf21f9f593ed6bb3d500a54de4b9f9bcb9fb","bytes":588,"role":"upstream"},{"path":"skills/react-best-practices/rules/rendering-usetransition-loading.md","sha256":"3a1249c3f13026b6f54ab5712c388df219d6af01b12aa542749acd99a46f4bc1","bytes":2074,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-defer-reads.md","sha256":"234050a77faf50cb306be10a9e15bd4421134ab5907e75f13e6d78e2bd262dc9","bytes":973,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-dependencies.md","sha256":"17eb5830956fb56486fd3cfc7431f5849d39751730c05ad9e77dd4f0c27169c5","bytes":824,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-derived-state-no-effect.md","sha256":"cb11ec76f50aa7b6847269f02d79b120c889a30d9ecd2c1d578f75144419c77a","bytes":1201,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-derived-state.md","sha256":"1c326bb67b01fb084eb00c8911b0a7cff54681c2315b629f88e49b64eaa6481d","bytes":728,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-functional-setstate.md","sha256":"5e68df6b2ae8058e67f476ff1ac67bde159f5a9d18df439e46eabcdeb7b52e58","bytes":2968,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-lazy-state-init.md","sha256":"4ae844740f266fc8cbf050701230286624a2440ec5be67b9a63d9edc3c580573","bytes":2016,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-memo-with-default-value.md","sha256":"81c47476564ad8a79fc68fc442734255ca7d6829424359464503fda0a9f9a0dd","bytes":1173,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-memo.md","sha256":"1f258990c2f27ff6256b3cc5c43300631bb3f0d81f749aed08d07fcdcc131dd1","bytes":1148,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-move-effect-to-event.md","sha256":"abc2cbf167bee056743023351e96806a411d3398da8802093620aecf0721f029","bytes":1268,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-no-inline-components.md","sha256":"1cc32907a770272524ba682eef9e7efdd8ad4533b6f89b718a1fcd7d1d0eb6a3","bytes":2135,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-simple-expression-in-memo.md","sha256":"5bdcf2d1558ba5204e643c887b7b4060f89630969425651eb68e96427d97f800","bytes":1018,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-split-combined-hooks.md","sha256":"6f45d703343484ef9acef9388397f3642966ae6a5a258899a0cf1f9977cfbf6c","bytes":1844,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-transitions.md","sha256":"60f4033909a62df5e5b8c601494f9e50a562e2f8c1c2d81eac24f38142265f1c","bytes":1055,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-use-deferred-value.md","sha256":"8c3579576a61a949884167745dcfaf1d5426ba305cc61fd0a79602d70fda4909","bytes":1846,"role":"upstream"},{"path":"skills/react-best-practices/rules/rerender-use-ref-transient-values.md","sha256":"f1a649af9d1d0b5c762f6c9c4c1c70c90d7df82aa10296ee87aadb78c1b76c54","bytes":1742,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-after-nonblocking.md","sha256":"d0b8d24a3db9f0f65f9e2bddbf230b0e03a5f60e1229d93a4a18f5e7a991c7c2","bytes":2012,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-auth-actions.md","sha256":"a2ca8aa102839251c7971ec784560fab943c20b36fe6f80365d4110c13260c23","bytes":2649,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-cache-lru.md","sha256":"1924b64561841923b88a657085097a0aeba3e0ba2d5470b9f5c15cc10d6ae70f","bytes":1353,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-cache-react.md","sha256":"fddeea6c870bb3da4134b61d54b7d09b83d2603f929b7547cd3dc1dc269edd5c","bytes":2228,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-dedup-props.md","sha256":"c2747424cdac46be62f835f245a0aa887b0090b416d28e2ac8676702645eeb37","bytes":2060,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-hoist-static-io.md","sha256":"5abea4dd882b13661bd5f7dfb93f9e547d5f08176c61c448ade91b210ed5d49f","bytes":4423,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-no-shared-module-state.md","sha256":"4d869bf1cd2f1632e5ca4c0e64b1cf0e71c5f5a0f940bc8a22174d205e735ed7","bytes":1766,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-parallel-fetching.md","sha256":"569a2e9fc04f9606686cd75c5894ef8781b502786a7fffe241396846c7733472","bytes":1554,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-parallel-nested-fetching.md","sha256":"ad5d9656984d4a959997a2367bf59cc6632297b4634a1dd13a087939d83f30b3","bytes":992,"role":"upstream"},{"path":"skills/react-best-practices/rules/server-serialization.md","sha256":"f4c7d68b29c82381baad059c4a7f09e868e71ec9c3115a26ad3ae7d24c0dfe1f","bytes":996,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Проект React/Next.js, редактор кода и инструменты сборки","Профилировщик браузера или анализатор сборки для проверки скорости"],"keys":[],"paidDependencies":[],"limitations":["Правила должны соответствовать установленным версиям React и Next.js.","Выигрыш в скорости зависит от приложения и требует замеров.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"frontend-design","kind":"skill","title":"Дизайн интерфейса под конкретный продукт","description":"Сначала определить визуальный характер, типографику и композицию, затем сверить их с задачей. Метод Anthropic помогает уйти от случайного набора красивых блоков.","applications":["Спроектировать лендинг с узнаваемым характером","Обновить интерфейс, сохранив требования бренда","Продумать мобильную версию и состояния ошибок"],"outcome":"Визуальный план, набор стилей и интерфейс, который можно проверить в браузере.","githubRepo":"anthropics/skills","markdown":"https://kossolapov.com/api/public/materials/frontend-design?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/frontend-design?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/frontend-design","download":null,"source":{"mode":"link-only","originalName":"frontend-design","author":{"name":"Anthropic","url":"https://github.com/anthropics","attribution":"Original skill: Anthropic. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Anthropic. Редакционное описание: kossolapov.com."},"repository":"anthropics/skills","path":"skills/frontend-design/SKILL.md","revision":"41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f","url":"https://github.com/anthropics/skills/blob/41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f/skills/frontend-design/SKILL.md","license":{"name":"Apache-2.0","url":"https://github.com/anthropics/skills/blob/41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f/skills/frontend-design/LICENSE.txt","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["Frontend project and browser preview","Screenshot tools for visual review"],"keys":[],"paidDependencies":[],"limitations":["Visual quality is subjective; inspect rendered output and accessibility.","Does not supply production copy, factual claims or rights to external assets.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"skills/frontend-design/LICENSE.txt","sha256":"0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594","bytes":10174,"role":"license"},{"path":"skills/frontend-design/SKILL.md","sha256":"d91970639e9f5c37682ac7ab60094d35f1c7c1f38d731bd56396563aee10c1d3","bytes":9390,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Frontend-проект и предпросмотр в браузере","Инструменты создания скриншотов для визуальной проверки"],"keys":[],"paidDependencies":[],"limitations":["Качество дизайна субъективно; проверяйте отрисованный интерфейс и доступность.","Скилл не предоставляет готовые факты, тексты для публикации или права на внешние изображения.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"postgres-best-practices","kind":"skill","title":"PostgreSQL: запросы, индексы и доступ","description":"Разобрать медленный SQL, устройство таблиц и правила доступа к строкам. Supabase собирает объяснения и примеры для PostgreSQL, в том числе вне своей платформы.","applications":["Разобрать план выполнения медленного запроса","Подобрать индексы под реальные фильтры","Проверить изоляцию данных разных клиентов"],"outcome":"Предложения по SQL и схеме с проверками скорости и прав доступа.","githubRepo":"supabase/agent-skills","markdown":"https://kossolapov.com/api/public/materials/postgres-best-practices?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/postgres-best-practices?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/postgres-best-practices","download":null,"source":{"mode":"link-only","originalName":"supabase-postgres-best-practices","author":{"name":"Supabase","url":"https://github.com/supabase","attribution":"Original skill: Supabase. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Supabase. Редакционное описание: kossolapov.com."},"repository":"supabase/agent-skills","path":"skills/supabase-postgres-best-practices/SKILL.md","revision":"8331f910845103c08d51f6ca1d86ebb7d1f745e3","url":"https://github.com/supabase/agent-skills/blob/8331f910845103c08d51f6ca1d86ebb7d1f745e3/skills/supabase-postgres-best-practices/SKILL.md","license":{"name":"MIT","url":"https://github.com/supabase/agent-skills/blob/8331f910845103c08d51f6ca1d86ebb7d1f745e3/LICENSE","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["PostgreSQL schema, queries and EXPLAIN plans","A separate test database for changes"],"keys":["Database access only when execution is requested; use a limited test role"],"paidDependencies":["A hosted database may incur usage charges"],"limitations":["Index advice depends on selectivity, workload and write cost; example speedups are not guarantees.","RLS must be tested with real application roles and trusted identity context.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"LICENSE","sha256":"b65e575eb4f04a13c187d64e958321298e2ab84d67aa8428819f362056ba292c","bytes":1065,"role":"license"},{"path":"skills/supabase-postgres-best-practices/CHANGELOG.md","sha256":"751ad110037c85d400018c9894716a04fa46357ff55c22b1169b280752e19e88","bytes":5684,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/SKILL.md","sha256":"ad65e776f45e761bafc609d3f506c77c1032225aa65e0c4c02f241b8071e5855","bytes":3231,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/_contributing.md","sha256":"191e039e7d94764e6073410b513b559f9a594e0fdf0252a30c2a2986df2ab3bc","bytes":4113,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/_sections.md","sha256":"c9e992612b422c7122de0b7542ebc2450db283edaab08cfe86c6d657fcccccd5","bytes":1682,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/_template.md","sha256":"6299954250f212caabe339d752c3e5313a8e07d1a182a4e4b425baee91df1bd2","bytes":1040,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/advanced-full-text-search.md","sha256":"40c2606bbb4c4dce31308f201b24cc7f58c7df05b1d9c6856fe2b888d3b7cf28","bytes":1468,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md","sha256":"24cacf6a8bc35901dd566d24502ce8e57f810a5c196b897e61d52726e521d106","bytes":1444,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/conn-idle-timeout.md","sha256":"630588902c00fcec59a5988cc5d042f76dcf2c923a535abfd8c47dca205eaed5","bytes":1282,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/conn-limits.md","sha256":"11b2a67a7c7679cbbc5d807bbb17e69c98484a581d0c8b929c03408f412b81b2","bytes":1325,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/conn-pooling.md","sha256":"88cf086bf98ba865d2e9d0579974e1366b14157619d6a93e7da77be91084e4a5","bytes":1382,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/conn-prepared-statements.md","sha256":"174e9332fe3dda5c99b2b00159fb1915ae36c00bab3a7882c14e73e4344e946e","bytes":1529,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/data-batch-inserts.md","sha256":"531933b82d6a622d0fae29e0ea80be6fe5d78655adf2804c271ea84a1930de37","bytes":1287,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/data-n-plus-one.md","sha256":"21a44905e5b16a42741892ec34bb1bfef124d049b140a76934a9acd0f46f5fc2","bytes":1361,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/data-pagination.md","sha256":"73c9fa10a3d439bedea0e11b640bd25bf30dd50f0d9006cf85baf7c3151543fa","bytes":1358,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/data-upsert.md","sha256":"2612af83b20a2701dde30ef1f8d7efd26b7e9eef84717226b8f038a2d2150ff7","bytes":1390,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/lock-advisory.md","sha256":"c88d259dbf81c3771438f59a165f7eab8acd09999dd370bdf807521c73f35aab","bytes":1531,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md","sha256":"09aee46f51d7178c8e55fe056cd5a94a64ba2c122fe418e6900cd99f297b2347","bytes":1855,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/lock-short-transactions.md","sha256":"5aa7f61095916986d39644b446cdbcd2bacca7ef698a3bb50b3f82dd60207602","bytes":1350,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/lock-skip-locked.md","sha256":"6c45077f430f29cd9cd8f448c94d578e827e7bd023fcdaf717a756acb116fa4b","bytes":1353,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md","sha256":"4cb67ffbf8e57f2e5b380b0beb4242528b513723ce314a2c2ffcf083bd4203d7","bytes":1441,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md","sha256":"89dca99d4e894fcbdcac136be7ad9fbc03d1342904f065c1b198dc9cf495f098","bytes":1418,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md","sha256":"2892272011710eb49b3f185ec12f15ce9ce4c365792c672f6e2a9c90da426a1a","bytes":1506,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/query-composite-indexes.md","sha256":"73e42424e671f0266e74fdb220db3196790f69fb43e2b19c7b9483eb4971b554","bytes":1454,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/query-covering-indexes.md","sha256":"daf2a7f0477fb7357b62b5fb5b185b1995a77a186347e45cb780e25e7a7589b6","bytes":1287,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/query-index-types.md","sha256":"472a74f22c2df203bd0154999b3a5a0187cca2ab3d9a3978e305bb7c32f1a282","bytes":1521,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/query-missing-indexes.md","sha256":"91ad8b0ff4365704b4830a7f077c6f140f7140fd5d3ce5cd0b92b160cf9e25f1","bytes":1218,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/query-partial-indexes.md","sha256":"6448982bc8558c6555284958edc331b29239c6a0130e6b4501dd6d4da607a6dd","bytes":1347,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/schema-constraints.md","sha256":"90e8efda3e9e81095e642911ad4aae2809d160f29414338fa997253238f510f8","bytes":1880,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/schema-data-types.md","sha256":"e01b58c14c7f3f65d8ead580b9a4fcf70b83baaab0f9a5f83c569c9fd113e8c8","bytes":1453,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md","sha256":"7587713d12a65a212365459b3d39e4717d8a79e4073b10bd62f1054d8192c0dd","bytes":1679,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md","sha256":"4bc80f70865f2390872591f326c8a6be6456a0aeb5a7e5a2475d7cd9d43059ab","bytes":1728,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/schema-partitioning.md","sha256":"541e13fbeaf4bb1485c9059d4c9417dbdb766cf16f4237cd63a04ada7ec45b90","bytes":1548,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/schema-primary-keys.md","sha256":"3c8beabef82066f9a0838b926da0885117fd2d9a263aaf84cb5ca9e5f0d400e9","bytes":1821,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/security-privileges.md","sha256":"095909274a4fb43df785d7144cf674eeb40284d2d45628f14af4108737b93663","bytes":1566,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/security-rls-basics.md","sha256":"e04dd1a3a382aafdaaa73fe9f7976352acdde6e90c2a2470d281b94d4f44b096","bytes":1372,"role":"upstream"},{"path":"skills/supabase-postgres-best-practices/references/security-rls-performance.md","sha256":"2e1faeca7d5746e246b1c78f9492fe2a9cfa41c4d7fa1e23c402d58fa18ea014","bytes":2103,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Схема PostgreSQL, запросы и планы EXPLAIN","Отдельная тестовая база для изменений"],"keys":["Доступ к базе нужен только для запуска запросов; используйте ограниченную тестовую роль"],"paidDependencies":["Облачная база данных может тарифицировать использование"],"limitations":["Выбор индексов зависит от селективности, нагрузки и стоимости записи; ускорения в примерах не гарантированы.","RLS нужно проверять с реальными ролями приложения и доверенным контекстом пользователя.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"remotion-video","kind":"skill","title":"Видео из React: сцены, звук и субтитры","description":"Официальный набор Remotion ведёт от композиции до предпросмотра и рендера. Внутри отдельные инструкции для тайминга, звука, субтитров и нескольких сцен.","applications":["Собрать ролик о продукте из нескольких сцен","Синхронизировать титры и звук","Подготовить шаблон видео с изменяемыми данными"],"outcome":"Проект Remotion с редактируемой композицией; видеофайл получается отдельным рендером.","githubRepo":"remotion-dev/skills","markdown":"https://kossolapov.com/api/public/materials/remotion-video?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/remotion-video?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/remotion-video","download":null,"source":{"mode":"link-only","originalName":"remotion-best-practices","author":{"name":"Remotion","url":"https://github.com/remotion-dev","attribution":"Original skill: Remotion. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Remotion. Редакционное описание: kossolapov.com."},"repository":"remotion-dev/skills","path":"skills/remotion-best-practices/SKILL.md","revision":"11986e44eeb672b083354e68967f2b194df73b7c","url":"https://github.com/remotion-dev/skills/blob/11986e44eeb672b083354e68967f2b194df73b7c/skills/remotion-best-practices/SKILL.md","license":{"name":"Not specified","url":"https://github.com/remotion-dev/skills/blob/11986e44eeb672b083354e68967f2b194df73b7c/README.md","evidenceType":"source-reference"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["Node.js, Git, React and a Remotion project","Browser for Remotion Studio; renderer for video export"],"keys":["Optional API credentials for voiceover, maps or cloud rendering"],"paidDependencies":["Remotion product licensing and optional cloud/API charges depend on usage; check the vendor terms"],"limitations":["Install the complete skill tree: the entry file routes to bundled references.","No explicit redistribution license was found for this skill repository; use the author’s source.","Third-party media requires its own usage rights.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"README.md","sha256":"6e0e9a0bf53e2c7f14b3f35a5ad6195cc07ac20c5a0bb1fd8ffe3198408cf50d","bytes":2805,"role":"upstream"},{"path":"skills/remotion-best-practices/SKILL.md","sha256":"e3ca3756935590167f694fa89b0f789b932512b37a0d2afe53cf4ec17b10dc26","bytes":2483,"role":"upstream"},{"path":"skills/remotion-best-practices/agents/openai.yaml","sha256":"66d3059cce8d9e49535a01dba01dd67f26a5da35cce3d3a32a3f513e957f71c9","bytes":311,"role":"upstream"},{"path":"skills/remotion-best-practices/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-captions/REFERENCE.md","sha256":"cc8b55f03f1da3ea6c1859cc1d9d0088f32bd86e1b4f1c5bfb387375eed3bffd","bytes":982,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-captions/agents/openai.yaml","sha256":"d115635f239714033447ca1ea5d39e115d2a746dd07211d6d8c6acdac8dd5282","bytes":305,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-captions/display-captions.md","sha256":"32fabb20c5251c3bec5ca706312dd8668dd9e4e0dd42a1bcfd2f927b90b0c72e","bytes":5647,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-captions/import-srt-captions.md","sha256":"cf5988aad6cba8192a81e5a030955ebf09e97473e0b5ce209e18973bf1a60633","bytes":2269,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-captions/transcribe-captions.md","sha256":"ad1a62af35fe176b37ac4d98f796451ca66bcc9983207a9710ec3eca6e847738","bytes":1897,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-create/REFERENCE.md","sha256":"f723bf8d6dd5f8befa76a0a4475a4d32f9a2d85deb64a19b6c6e2d121f2f7d4e","bytes":2041,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-create/agents/openai.yaml","sha256":"337274103fbb5395a6355fa09d87dd01ba3708500afbba7edb10d742391aa6d3","bytes":310,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-create/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-create/tailwind.md","sha256":"3ef07d3225d212af6a5076e62797a04d22d394434dcdbe2c050dab0d92806f36","bytes":386,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-create/video-layout.md","sha256":"7ad94c22e3ad87671292ebb9b22f234c544d6c7fed13f8cb112b84b0f7077d4c","bytes":498,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-docs/REFERENCE.md","sha256":"318e985d2f40a680148a5047323d9185b211dc1d5696a11639c86f49382c5822","bytes":1355,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-docs/agents/openai.yaml","sha256":"87c4045ace1c3852411e2095b35359268b4fc99e807108e8eb36e077131cfc26","bytes":307,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-interactivity/REFERENCE.md","sha256":"0e5700f2b36003159603045d2006c5aafec9cc8f651eaf73446c4545daf8cc1c","bytes":7529,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml","sha256":"c3983ddc6dc1c7d58c487017ceaabfb72d835d489400e719ea0466073b3f97e7","bytes":320,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/REFERENCE.md","sha256":"024b268be47d4c4af81606cfea8d921f8b573fe80b97f000ec199b1758d31b31","bytes":1030,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/agents/openai.yaml","sha256":"39e5a9fb81d07e5aa9030d66f4d5d955698b4673cf9733cb6734d2dc75c4a9bd","bytes":293,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md","sha256":"09057e77b67dcda23eed8ddbf1b5bd44541a952f380913a00b3bfddaa39ab675","bytes":3909,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx","sha256":"4d4a90e373176e840ae76ae91533fcd9dc445407693b17091c376bb597dbcb10","bytes":8912,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json","sha256":"329621928df19d115f93c472a0b7ddbd2463cad502a10722d3c23579a7441d44","bytes":12329,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json","sha256":"3bb420736d196f726b856420b319e21a8d7fc24bca7e626d67e8b00b0544e630","bytes":223,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx","sha256":"51c2df109015adc992b66b62f1ffc9801ad13f3dc47e4290de40cbe1b8e7809e","bytes":923,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts","sha256":"fab65d2d9cc0c4ca56f8a1422494d178c0e57f92a048a4720358d236ced980f0","bytes":1240,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson","sha256":"2c9f6dd35ac4aed56580078046941235ed7e1a5d432a6549dbf7fea4e8d1e9be","bytes":6409,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md","sha256":"23ac1acc576d49d599b33c812dc697b264ebe28849088c04e9827cb47b95275f","bytes":1451,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md","sha256":"09e1891cec991a246eec60dbcf76c4ea84c52e0bee14321471197703395d0a91","bytes":7887,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md","sha256":"c803fe443f5bab1a50408f1f6aa6aded7913577eaefcb586b320c5a96c391bf2","bytes":6741,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs","sha256":"6dbb4d1ae3f5fef9f3f6eb23e2a6d58622750714bb847b088ff58a3533839463","bytes":5561,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md","sha256":"921ef62afc1057e66423a9fae11d3f849d4b3dcfbfa7e9970a281e0d12f37c22","bytes":13166,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md","sha256":"96650329df3a870743b6255123e93dba866a37eb1ab1d07c8275efff0d4dead9","bytes":3639,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md","sha256":"16f659a83e4dca4817c2cc93d5be2242f3aeada1fe2d6b31190dbde51ea21c0c","bytes":13403,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md","sha256":"96650329df3a870743b6255123e93dba866a37eb1ab1d07c8275efff0d4dead9","bytes":3639,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md","sha256":"72896873e63d675caaab765941dbb8d668f2790090a63b94e165f254b77ef887","bytes":4518,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx","sha256":"6be8c7d5b3435c8d933f05394ce5e807da5fc9fe0565db94ccaee6ac049df137","bytes":1849,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts","sha256":"c8137792824323b9db997a88c3b923e8072cf2886cd90c38d84fdbbaad8258ed","bytes":2183,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx","sha256":"c3091e23dfd80178788d05c0bc43b17aee12aa4236d658f1a97c5acfb29a0f92","bytes":10830,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx","sha256":"e53677a7a207e37cbc04693eca8ccbab5f5f040efdc67a8b5c030c3913895e83","bytes":1039,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json","sha256":"470a76cc5a45e58e7e1702cd80f74fcacf9d6e8b1ef7b05011f69853a999ba7b","bytes":333134,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json","sha256":"73a99e77a2ce31cb3ac39be8fe4775d53ecf127a56137b587fca090067dfbb96","bytes":13082,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts","sha256":"29ae05eedb4988b5b8f2eb44d241b9c472533fb6ed05d4b33df3e71e0eabc71c","bytes":1256,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md","sha256":"b99680cbda8e7d70dc2cb1a8823f66247a21fc59d10c6dae0dd9ba24d2f15b80","bytes":4798,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md","sha256":"e09de8a4d00ea9a82b992918ec4d0302ee18979b73e6c777d584a9743092344f","bytes":6871,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md","sha256":"a97b1913f06195601889d4e090ad056db2fffb7b83918924c8cd92847b3829ef","bytes":4098,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md","sha256":"96650329df3a870743b6255123e93dba866a37eb1ab1d07c8275efff0d4dead9","bytes":3639,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs","sha256":"8265f56bd7c27a7d1a5fa528a77bbe1b29c6acc0e6730233583ca53e2632d490","bytes":7553,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md","sha256":"1d2b15f2e09cbb2b2ba0d5a6ec54ecf619b6696acced0b7bec7e010fbe1f1f03","bytes":1151,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/3d.md","sha256":"42cef6d68fb4a266ab495d35df0c60e03672b0d85c043f9b567f6aa7ff00dd0d","bytes":2292,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/REFERENCE.md","sha256":"6130638045177b16a49fcd001ccef7d7d3d2b5633ce016ac6cb1ee3e67b5fd00","bytes":11039,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/agents/openai.yaml","sha256":"e466d0d7ede756e96d8b366e8d6b76f69dbde3d1d937e8e25b72287e045be95c","bytes":310,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/audio-visualization.md","sha256":"0f4043de86639b6390e5ab888eaa66a24a10a8bd540f1443327cb88107eae1e9","bytes":4892,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/audio.md","sha256":"59b03efd20139ec344c850add031bf5784e744927f896f7437242178d22ab932","bytes":3615,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/calculate-metadata.md","sha256":"711743642a475970dcadddb71805939dd6ee8f348825818cc8897b6a01e1eef0","bytes":3498,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/compositions.md","sha256":"c99d15ce34ba5d5e2fdfdef7be715b8afdae106001bf234f7fceab15378ed6df","bytes":3194,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/cropping.md","sha256":"66b470cb09d2a93939b08340a3503b6cb7aef6682c62c7ef478ca802994d622d","bytes":1102,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/effects.md","sha256":"4f8abd99e3a89668aa1b6521d2cbde8a9b3d25aa9cb4ca2b135b96fe4e70fae7","bytes":8904,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/embedding-videos.md","sha256":"543ddf73e53bd750019b0283506d2cc30e9acb605c8628fa12fc9dd3edbc145c","bytes":3505,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/ffmpeg.md","sha256":"930d26b519b744e97f0c080608b55200b97ff15d6c366c6c5361bab56ff0e873","bytes":1099,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/gifs.md","sha256":"91e17126f7f0d57efdbdbaf34e0c234f874bd6aa66ec7854b80f17b0e32c3b22","bytes":3783,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/google-fonts.md","sha256":"fff29cf692ccab0cda263cd85255cf634dbb4d1d2d99e8372b01d9fedbd6cbfd","bytes":1714,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/html-in-canvas.md","sha256":"d674ed1c1c16a657d8b8a58024e6eee625457b93eca0ef83666cc74d4531bba9","bytes":3626,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/images.md","sha256":"3a82065698ad8d4818164882212215dfe4dc78f00145c87f47513a691550b72b","bytes":1466,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/light-leaks.md","sha256":"892c90340921b5aff5499588aadd23cf9fa79758d345f6ea3acf02ae0258ea73","bytes":3212,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/local-fonts.md","sha256":"fcad2a2e3a05419d4555c59a75454c4891455dbea91ad596c1095e2887d26a11","bytes":1533,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/lottie.md","sha256":"666268c8151d91042162f9efe3f02fe8c62b4c45053614eb1a9325c169428826","bytes":1806,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md","sha256":"a677b976eaf1cbc3cdd29cf29a3fd546c557b9a31e6b1fd70e473fde7e828733","bytes":995,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/measuring-text.md","sha256":"4bed81d1ea818db3975f878152dc24ecbc17e163117dcab10761dc8690c33f0c","bytes":2801,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/multi-scene-video.md","sha256":"00d4c4cdd515b69cee84b2e274393aafd4060612372aa629712c320427e6bd37","bytes":2035,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/parameters.md","sha256":"b002ac9959105b2b91da5786bcb20aa6ff4c6632ed37074b32711f248867dff0","bytes":2403,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md","sha256":"024b268be47d4c4af81606cfea8d921f8b573fe80b97f000ec199b1758d31b31","bytes":1030,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml","sha256":"39e5a9fb81d07e5aa9030d66f4d5d955698b4673cf9733cb6734d2dc75c4a9bd","bytes":293,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md","sha256":"09057e77b67dcda23eed8ddbf1b5bd44541a952f380913a00b3bfddaa39ab675","bytes":3909,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx","sha256":"4d4a90e373176e840ae76ae91533fcd9dc445407693b17091c376bb597dbcb10","bytes":8912,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json","sha256":"329621928df19d115f93c472a0b7ddbd2463cad502a10722d3c23579a7441d44","bytes":12329,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json","sha256":"3bb420736d196f726b856420b319e21a8d7fc24bca7e626d67e8b00b0544e630","bytes":223,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx","sha256":"51c2df109015adc992b66b62f1ffc9801ad13f3dc47e4290de40cbe1b8e7809e","bytes":923,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts","sha256":"fab65d2d9cc0c4ca56f8a1422494d178c0e57f92a048a4720358d236ced980f0","bytes":1240,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson","sha256":"2c9f6dd35ac4aed56580078046941235ed7e1a5d432a6549dbf7fea4e8d1e9be","bytes":6409,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md","sha256":"23ac1acc576d49d599b33c812dc697b264ebe28849088c04e9827cb47b95275f","bytes":1451,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md","sha256":"09e1891cec991a246eec60dbcf76c4ea84c52e0bee14321471197703395d0a91","bytes":7887,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md","sha256":"c803fe443f5bab1a50408f1f6aa6aded7913577eaefcb586b320c5a96c391bf2","bytes":6741,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs","sha256":"6dbb4d1ae3f5fef9f3f6eb23e2a6d58622750714bb847b088ff58a3533839463","bytes":5561,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md","sha256":"921ef62afc1057e66423a9fae11d3f849d4b3dcfbfa7e9970a281e0d12f37c22","bytes":13166,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md","sha256":"96650329df3a870743b6255123e93dba866a37eb1ab1d07c8275efff0d4dead9","bytes":3639,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md","sha256":"16f659a83e4dca4817c2cc93d5be2242f3aeada1fe2d6b31190dbde51ea21c0c","bytes":13403,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md","sha256":"96650329df3a870743b6255123e93dba866a37eb1ab1d07c8275efff0d4dead9","bytes":3639,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md","sha256":"72896873e63d675caaab765941dbb8d668f2790090a63b94e165f254b77ef887","bytes":4518,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx","sha256":"6be8c7d5b3435c8d933f05394ce5e807da5fc9fe0565db94ccaee6ac049df137","bytes":1849,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts","sha256":"c8137792824323b9db997a88c3b923e8072cf2886cd90c38d84fdbbaad8258ed","bytes":2183,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx","sha256":"c3091e23dfd80178788d05c0bc43b17aee12aa4236d658f1a97c5acfb29a0f92","bytes":10830,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx","sha256":"e53677a7a207e37cbc04693eca8ccbab5f5f040efdc67a8b5c030c3913895e83","bytes":1039,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json","sha256":"470a76cc5a45e58e7e1702cd80f74fcacf9d6e8b1ef7b05011f69853a999ba7b","bytes":333134,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json","sha256":"73a99e77a2ce31cb3ac39be8fe4775d53ecf127a56137b587fca090067dfbb96","bytes":13082,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts","sha256":"29ae05eedb4988b5b8f2eb44d241b9c472533fb6ed05d4b33df3e71e0eabc71c","bytes":1256,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md","sha256":"b99680cbda8e7d70dc2cb1a8823f66247a21fc59d10c6dae0dd9ba24d2f15b80","bytes":4798,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md","sha256":"e09de8a4d00ea9a82b992918ec4d0302ee18979b73e6c777d584a9743092344f","bytes":6871,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md","sha256":"a97b1913f06195601889d4e090ad056db2fffb7b83918924c8cd92847b3829ef","bytes":4098,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md","sha256":"96650329df3a870743b6255123e93dba866a37eb1ab1d07c8275efff0d4dead9","bytes":3639,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs","sha256":"8265f56bd7c27a7d1a5fa528a77bbe1b29c6acc0e6730233583ca53e2632d490","bytes":7553,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md","sha256":"6fcb61a66084f4037a2fa0deb988500dd18e4ae7fa3c6923fb1142c1e521e9be","bytes":1138,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/sequencing.md","sha256":"64784498f40db7b32c032dc648282caf5a02082d4d7a6667d8b7a1465f341dc4","bytes":3829,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/sfx.md","sha256":"5397a44c2d7678bf642d746b7edbf4f51e10c31ac99c8054da4a4a7d70365dcd","bytes":1806,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/silence-detection.md","sha256":"ed95d46d078f3749b87ec3c6e25c1c5b0c8485fdcb41156d649266369748fdc2","bytes":2548,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/text-highlights.md","sha256":"70773952286e1aec2ba02f2f54d2d776dad7799d87744df03b0c75637ebfb21f","bytes":1851,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/timing.md","sha256":"48047e758b96aea519916479ede62b832bf51f982924978e091c37f569ab4bac","bytes":3315,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/transitions.md","sha256":"41d69d0b5c862bcada825a68413064837fd4fcd55f81ad59492931db982a08ad","bytes":6882,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/video-editing.md","sha256":"c43e1b419b0ea32c07b14ff6a17fb3bccb6acea7317de4051827ef0316f4262a","bytes":3404,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-markup/voiceover.md","sha256":"28350a793939b6170c535a219b2c4702378346ea8485540f980da5ccc5fa19fc","bytes":3342,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-multimedia/REFERENCE.md","sha256":"7e28322023badaab4a740585231f0a3aa409a6197ca6ca4078786406df083a11","bytes":705,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml","sha256":"9109fd8b176a930631ee7e822ae7b2cff28abf9d587f6ea68edc489f6468dbb8","bytes":317,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md","sha256":"f4ec12e356144697b802a2d93240612aa09b60a76342154983a2cf41316f0bba","bytes":1315,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md","sha256":"d330e701e4a494fdac7502be52f206f6dee11c43314d1b2f731e4120eed72dc5","bytes":1584,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-multimedia/get-video-duration.md","sha256":"6e3bec1b3f62e3ab1f16ad41cca7b14e6e3db5046e8282cd2389e05cff42c743","bytes":1335,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-render/REFERENCE.md","sha256":"deb8177ddef8bf3138f3a55d1634fdab8d1580f52bd73f8703b034efb7c1874b","bytes":470,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-render/agents/openai.yaml","sha256":"292f401942c41e05bc92caae76b2f2c522f9b499e445e7fe0edaf42d5535b064","bytes":286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-render/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-render/transparent-videos.md","sha256":"394ccda476e084522d544471fee92d7c65672e2cbaf2201a785c3dd5c74f31a4","bytes":2267,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-saas/REFERENCE.md","sha256":"ecef237b4968924defb78c416920193b63d47bfe5b8f98d590bb2d0133d6d413","bytes":1053,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-saas/agents/openai.yaml","sha256":"9d203fcf45639af3c932a03943d90ab2e0080ac4986d69b24016afca77b1951f","bytes":283,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-saas/framework.md","sha256":"d1071a392f88fbafde3166547e1000b18a920e89ab8433cd1783edc8cfadc151","bytes":1188,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-saas/player.md","sha256":"cc2f2944f1158d6ff1ddfc421a6a790f99ae86f54bbe0f0b18ef8bc7485e1b05","bytes":942,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-saas/rendering.md","sha256":"b2f30b53e0191ef9e7f2da7360b36c0c5448ab5bdcf55575e1f7e55c5bbd257f","bytes":3343,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-studio/REFERENCE.md","sha256":"d1b981979ea3f9a08571b1c90892328aff1afbeb22eb11fcdbe32bc1057b2d5f","bytes":958,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-studio/agents/openai.yaml","sha256":"f416359bbdf397494fb60f60d9ba5f473be67696dc0673be49ab2f4a38370bd8","bytes":237,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-upgrade/REFERENCE.md","sha256":"794a2944f869d0430554496a9c00350a84d6f11e13a3ef22a2eb8216906b141f","bytes":1880,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml","sha256":"641150148be8a40fd8ae45970c863bf894d5a19420459541e5f37594a8ea2920","bytes":282,"role":"upstream"},{"path":"skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png","sha256":"662a084d72d99ab91b47c7a566dd0631f0ce0e4f0bf6032708c9200b0db09fd9","bytes":1286,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Node.js, Git, React и проект Remotion","Браузер для Remotion Studio; рендерер для экспорта видео"],"keys":["Дополнительные API-ключи для озвучки, карт или облачного рендера"],"paidDependencies":["Лицензия Remotion и стоимость облачных сервисов/API зависят от использования; проверьте условия поставщика"],"limitations":["Устанавливайте полное дерево скилла: входной файл направляет к вложенным справочникам.","Явная лицензия на распространение файлов этого репозитория скиллов не найдена; используйте оригинал автора.","На сторонние изображения, видео и звук нужны отдельные права использования.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"dbt-analytics-engineering","kind":"skill","title":"Построить и проверить модели данных dbt","description":"Начать с нужной итоговой таблицы, пройти назад к источникам и проверить преобразования на данных. Скилл dbt Labs связывает SQL, зависимости моделей и тесты.","applications":["Построить витрину продаж с ясной детализацией строк","Найти дубли после соединения таблиц","Оценить последствия изменения существующей модели"],"outcome":"Модели dbt, тесты и документированные проверки входных и итоговых данных.","githubRepo":"dbt-labs/dbt-agent-skills","markdown":"https://kossolapov.com/api/public/materials/dbt-analytics-engineering?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/dbt-analytics-engineering?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/dbt-analytics-engineering","download":null,"source":{"mode":"link-only","originalName":"using-dbt-for-analytics-engineering","author":{"name":"dbt Labs","url":"https://github.com/dbt-labs","attribution":"Original skill: dbt Labs. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: dbt Labs. Редакционное описание: kossolapov.com."},"repository":"dbt-labs/dbt-agent-skills","path":"skills/dbt/skills/using-dbt-for-analytics-engineering/SKILL.md","revision":"2116bc1397c6b1f8d406e0c52a0601c2a969b90d","url":"https://github.com/dbt-labs/dbt-agent-skills/blob/2116bc1397c6b1f8d406e0c52a0601c2a969b90d/skills/dbt/skills/using-dbt-for-analytics-engineering/SKILL.md","license":{"name":"Apache-2.0","url":"https://github.com/dbt-labs/dbt-agent-skills/blob/2116bc1397c6b1f8d406e0c52a0601c2a969b90d/LICENSE","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["dbt CLI and an existing dbt project with the appropriate warehouse adapter","dbt show access to test data; optional dbt MCP integration","For breaking changes: companion working-with-dbt-mesh, included in the source file list"],"keys":["Authorized test warehouse profile or credentials"],"paidDependencies":["Warehouse queries and optional dbt platform services may be billed"],"limitations":["Requires real schema and data access; does not infer business definitions reliably from names alone.","Breaking column changes require the companion working-with-dbt-mesh skill and a migration plan.","Use selective runs and bounded exploration to control warehouse cost.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"LICENSE","sha256":"a25c0f444db00399e225e96559b376d92188fbab622b50c5d4db7c556f77daff","bytes":11338,"role":"license"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/SKILL.md","sha256":"bcbf2ea18ff5a6ba5988febf0d8989560cbe05fdf76e61c84ef3f012c5f79a7b","bytes":7435,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/references/debugging-dbt-errors.md","sha256":"f542cf623fd1a5c2969f1464874e58d04ea9245313a1ea3503cf0848eeed9d87","bytes":4154,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/references/discovering-data.md","sha256":"c9eedadd6defa42cd31912c01d118349cd8eb258e44af9397cbeaf4db61bbef2","bytes":6569,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/references/evaluating-impact-of-a-dbt-model-change.md","sha256":"7f4c4542d72834cc3d0f6aa9a488c4bdbd48d189744020632dc66ea76f3b3f72","bytes":3604,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/references/managing-packages.md","sha256":"e91601808e75fd5dba61fb471d3e3e67a2f88f46a55252446924b6d2e7e196d1","bytes":2443,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/references/planning-dbt-models.md","sha256":"da9c9431b59c3da8a67466896139841046be5287115434f26da60882e1b7a6fc","bytes":7284,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/references/writing-data-tests.md","sha256":"2b110c633f3696c2f3d620535f927fc93a5a90e64bdc32759c62617cab53b0f2","bytes":6366,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/references/writing-documentation.md","sha256":"99796521bfb88076703b73983e5c4a484e6470322fd908911a2407c2736c0552","bytes":1063,"role":"upstream"},{"path":"skills/dbt/skills/using-dbt-for-analytics-engineering/scripts/review_run_results.md","sha256":"c8554bbb0d1683706cdea7a98496cc2af5f4774b7c236bd90f5d72612dcfaa93","bytes":1746,"role":"upstream"},{"path":"skills/dbt/skills/working-with-dbt-mesh/SKILL.md","sha256":"69a2701a0dfd63cd03c3e2de6dad33df45d53841cafaa1789062dcb799ad271d","bytes":18936,"role":"upstream"},{"path":"skills/dbt/skills/working-with-dbt-mesh/references/cross-project-collaboration.md","sha256":"7929c38a90e5472912fd69784a89ff42b96935b35cea64b7679edfde1eec5278","bytes":6335,"role":"upstream"},{"path":"skills/dbt/skills/working-with-dbt-mesh/references/groups-and-access.md","sha256":"101b5a401654f4461d1e2b58a7c1b529f00d85d582b7c0d68a8f0a5e27d7e324","bytes":6192,"role":"upstream"},{"path":"skills/dbt/skills/working-with-dbt-mesh/references/model-contracts.md","sha256":"81dfabcce915f62fa684da88a0d3389d86cc67acdda60eb81923f75694415d24","bytes":6306,"role":"upstream"},{"path":"skills/dbt/skills/working-with-dbt-mesh/references/model-versions.md","sha256":"c828f842ec4df3cd7303a35e8acd4cc376ba3453e27ed51c5a1a86991c452455","bytes":13998,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["dbt CLI, существующий проект dbt и подходящий адаптер хранилища","Доступ через dbt show к тестовым данным; интеграция dbt MCP необязательна","Для несовместимых изменений нужен скилл working-with-dbt-mesh, включённый в список исходников"],"keys":["Разрешённый профиль или учётные данные тестового хранилища"],"paidDependencies":["Запросы к хранилищу и дополнительные сервисы платформы dbt могут тарифицироваться"],"limitations":["Нужен доступ к реальной схеме и данным; названия колонок сами по себе не раскрывают бизнес-определения.","Несовместимые изменения колонок требуют скилла working-with-dbt-mesh и плана миграции.","Ограничивайте объём исследования и запускайте выбранные модели, чтобы контролировать расходы.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"security-threat-model","kind":"skill","title":"Модель угроз по исходному коду","description":"Связать точки входа, ценные данные и границы доверия с конкретными сценариями злоупотребления. Метод OpenAI требует отделять найденные защиты от предположений.","applications":["Проверить архитектуру сервиса перед запуском","Разобрать риски загрузки файлов и фоновых заданий","Найти границы изоляции между клиентами"],"outcome":"Markdown-отчёт с угрозами, обоснованными приоритетами, мерами защиты и открытыми вопросами.","githubRepo":"openai/skills","markdown":"https://kossolapov.com/api/public/materials/security-threat-model?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/security-threat-model?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/security-threat-model","download":null,"source":{"mode":"link-only","originalName":"security-threat-model","author":{"name":"OpenAI","url":"https://github.com/openai","attribution":"Original skill: OpenAI. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: OpenAI. Редакционное описание: kossolapov.com."},"repository":"openai/skills","path":"skills/.curated/security-threat-model/SKILL.md","revision":"49f948faa9258a0c61caceaf225e179651397431","url":"https://github.com/openai/skills/blob/49f948faa9258a0c61caceaf225e179651397431/skills/.curated/security-threat-model/SKILL.md","license":{"name":"Apache-2.0","url":"https://github.com/openai/skills/blob/49f948faa9258a0c61caceaf225e179651397431/skills/.curated/security-threat-model/LICENSE.txt","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["Read access to the in-scope repository","Deployment and authentication context from the service owner"],"keys":[],"paidDependencies":[],"limitations":["A threat model is not a penetration test or proof that vulnerabilities exist.","The workflow asks for confirmation of assumptions that affect scope or severity.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"skills/.curated/security-threat-model/LICENSE.txt","sha256":"4dd13869245e356246a5b770723247bbb80a8f07a181d1d3d873a1734297cdb9","bytes":10776,"role":"license"},{"path":"skills/.curated/security-threat-model/SKILL.md","sha256":"1283c0dd62a8104d9edda4583569b5d8510b4ddaa45120687c999250fd96bad2","bytes":5561,"role":"upstream"},{"path":"skills/.curated/security-threat-model/agents/openai.yaml","sha256":"3319b59736312abceca614e341c0e59cae47263e3b58a22b2b5ddf1e5fc8c227","bytes":254,"role":"upstream"},{"path":"skills/.curated/security-threat-model/references/prompt-template.md","sha256":"81a59aa3fb3ac3a739d6a26ab38e4015965f215581ee54becef21a2b121ec29b","bytes":12642,"role":"upstream"},{"path":"skills/.curated/security-threat-model/references/security-controls-and-assets.md","sha256":"d536cfa9acad2523dc39134bcf33b9566c29dd9a57b407cbc9901637230c6b98","bytes":1680,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Доступ на чтение к исследуемому репозиторию","Контекст развёртывания и аутентификации от владельца сервиса"],"keys":[],"paidDependencies":[],"limitations":["Модель угроз не является тестом на проникновение или доказательством наличия уязвимостей.","Процесс предусматривает подтверждение предположений, влияющих на границы анализа или серьёзность риска.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"seo-audit","kind":"skill","title":"SEO-аудит с доказательствами и приоритетами","description":"Проверить доступность страниц для поиска, канонические ссылки, контент и языковые версии. Каждый вывод нужно связать с наблюдением и конкретным исправлением.","applications":["Найти технические причины проблем с индексацией","Проверить canonical и hreflang на двуязычном сайте","Собрать последовательность исправлений после миграции"],"outcome":"Отчёт: проблема, доказательство, влияние и способ исправления.","githubRepo":"coreyhaines31/marketingskills","markdown":"https://kossolapov.com/api/public/materials/seo-audit?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/seo-audit?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/seo-audit","download":null,"source":{"mode":"link-only","originalName":"seo-audit","author":{"name":"Corey Haines","url":"https://github.com/coreyhaines31","attribution":"Original skill: Corey Haines. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Corey Haines. Редакционное описание: kossolapov.com."},"repository":"coreyhaines31/marketingskills","path":"skills/seo-audit/SKILL.md","revision":"5b2c0007766c6a1cf1d53fd8fc73e979e0821022","url":"https://github.com/coreyhaines31/marketingskills/blob/5b2c0007766c6a1cf1d53fd8fc73e979e0821022/skills/seo-audit/SKILL.md","license":{"name":"MIT","url":"https://github.com/coreyhaines31/marketingskills/blob/5b2c0007766c6a1cf1d53fd8fc73e979e0821022/LICENSE","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["Browser or crawler that can inspect rendered pages","Search Console for indexing and traffic evidence; PageSpeed Insights as needed"],"keys":["Site-owner access for private Search Console data"],"paidDependencies":["Ahrefs, Semrush and other commercial crawlers are optional"],"limitations":["Rankings and traffic gains are not guaranteed.","Validate structured data in rendered output; text-only fetches may omit scripts.","Some upstream tool references are dated, including the retired Mobile-Friendly Test; use current equivalents.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"LICENSE","sha256":"b70d71e24e40fce5da8f4b6f9cd862096a048e433db7f3c8cac5e348e6d34591","bytes":1069,"role":"license"},{"path":"skills/seo-audit/SKILL.md","sha256":"9420a6c1ffcf7212766bcb618c28766ecb084631bed8045f3115d42b1230d368","bytes":16610,"role":"upstream"},{"path":"skills/seo-audit/evals/evals.json","sha256":"b808dfa7ee1e312cda39cfac57f44674bd3cee6eaa151af7008760a9514bb6cf","bytes":9796,"role":"upstream"},{"path":"skills/seo-audit/references/ai-writing-detection.md","sha256":"f1e273f56ce7e2215ff218bf903680ddcec0fd026ab90c3ebfb3439ed0edfaa4","bytes":6528,"role":"upstream"},{"path":"skills/seo-audit/references/international-seo.md","sha256":"d2fc76f40eccc422ae0f1d7e5b770095e89a045f38e1d0370811203da57996ff","bytes":14258,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Браузер или краулер с проверкой отрисованных страниц","Search Console для данных об индексации и трафике; PageSpeed Insights при необходимости"],"keys":["Доступ владельца сайта для закрытых данных Search Console"],"paidDependencies":["Ahrefs, Semrush и другие коммерческие краулеры необязательны"],"limitations":["Рост позиций и трафика не гарантируется.","Проверяйте структурированные данные в отрисованной странице: текстовая загрузка может пропускать скрипты.","Некоторые инструменты в оригинале устарели, включая закрытый Mobile-Friendly Test; используйте актуальные аналоги.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"react-composition","kind":"skill","title":"React-компоненты без десятков флагов","description":"Разделить перегруженный компонент на составные части, явные варианты и общее состояние. Vercel показывает, как проектировать API компонентов на конкретных примерах.","applications":["Разобрать компонент с множеством boolean-пропсов","Собрать несколько вариантов формы из общих частей","Отделить управление состоянием от отображения"],"outcome":"Более явный API компонентов и план рефакторинга с сохранением поведения.","githubRepo":"vercel-labs/agent-skills","markdown":"https://kossolapov.com/api/public/materials/react-composition?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/react-composition?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/react-composition","download":null,"source":{"mode":"link-only","originalName":"vercel-composition-patterns","author":{"name":"Vercel Engineering","url":"https://github.com/vercel-labs","attribution":"Original skill: Vercel Engineering. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Vercel Engineering. Редакционное описание: kossolapov.com."},"repository":"vercel-labs/agent-skills","path":"skills/composition-patterns/SKILL.md","revision":"063bee94c3f4df8453406c830b0a7df0f2860278","url":"https://github.com/vercel-labs/agent-skills/blob/063bee94c3f4df8453406c830b0a7df0f2860278/skills/composition-patterns/SKILL.md","license":{"name":"MIT","url":"https://github.com/vercel-labs/agent-skills/blob/063bee94c3f4df8453406c830b0a7df0f2860278/README.md","evidenceType":"source-reference"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["React project and its component tests"],"keys":[],"paidDependencies":[],"limitations":["React 19-specific advice must not be applied to React 18 unchanged.","Composition adds structure; small components may not need this refactor.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"README.md","sha256":"7c02f64b08fc6c4eef03c01d64f3e2ed478193ccfcbd14edba379abe23304651","bytes":7838,"role":"upstream"},{"path":"skills/composition-patterns/AGENTS.md","sha256":"89e3ddd58fcf99a53a50e25dfd21b8cde1be5f10b7df6bacd3dfa6796932f516","bytes":22627,"role":"upstream"},{"path":"skills/composition-patterns/README.md","sha256":"85915a43a6f0b4efe525e3cf6398dd866166da2025837c4460468a24a940da94","bytes":2140,"role":"upstream"},{"path":"skills/composition-patterns/SKILL.md","sha256":"e38e0eaa609316b10423a9a138ed95e35099accd3f735585295c8a8f165c28a3","bytes":2886,"role":"upstream"},{"path":"skills/composition-patterns/metadata.json","sha256":"49262ed5cb4186f31ee980cf8d990be0170c51efed4908d0464a1cff9905bd05","bytes":530,"role":"upstream"},{"path":"skills/composition-patterns/rules/_sections.md","sha256":"a174213b87e6911e2b766995a2cbaf8d1534057076e82fb79fe3f0ecb38047df","bytes":829,"role":"upstream"},{"path":"skills/composition-patterns/rules/_template.md","sha256":"587f7d16b0660eb61fee4a4d3d7df2b3077d6835de170602c7d6e60bee559131","bytes":329,"role":"upstream"},{"path":"skills/composition-patterns/rules/architecture-avoid-boolean-props.md","sha256":"007555ebb020f4d552582a2c4db194db71a1fd33094012e5187bcfa4f8c392d5","bytes":2267,"role":"upstream"},{"path":"skills/composition-patterns/rules/architecture-compound-components.md","sha256":"f246af13dc269b521cf20eb8ad99a0cb645beac381c8c9b117262c34612c8457","bytes":2600,"role":"upstream"},{"path":"skills/composition-patterns/rules/patterns-children-over-render-props.md","sha256":"7c45a0d21b3c4126a32cba916ee31adeae195386ad1dbbe6634aedb7457aa0ad","bytes":1886,"role":"upstream"},{"path":"skills/composition-patterns/rules/patterns-explicit-variants.md","sha256":"8c19e596e61807549d01ce8c6954c6358199f97a8511c0c02c625ec0efda8c0e","bytes":2395,"role":"upstream"},{"path":"skills/composition-patterns/rules/react19-no-forwardref.md","sha256":"881830adb7534c4b2d70db426556646ad9837f5478f744f35641f635ada22227","bytes":953,"role":"upstream"},{"path":"skills/composition-patterns/rules/state-context-interface.md","sha256":"09e73afbf9285fa416679cc864a287b9e8b821d0969272ab784295386d8c9bc3","bytes":4974,"role":"upstream"},{"path":"skills/composition-patterns/rules/state-decouple-implementation.md","sha256":"76a8c1eb29a70d8996ab3f71260345af2f7bc89deab815a421d6c87c6591a9c3","bytes":2699,"role":"upstream"},{"path":"skills/composition-patterns/rules/state-lift-state.md","sha256":"74c54038a6c554c748fe31cec673b80861b5d920b7553cf78cdf10d18b4b759b","bytes":3224,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["React-проект и тесты его компонентов"],"keys":[],"paidDependencies":[],"limitations":["Рекомендации для React 19 нельзя без изменений применять в React 18.","Композиция добавляет структуру; небольшим компонентам такой рефакторинг может не требоваться.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"webapp-testing","kind":"skill","title":"Проверить веб-приложение через браузер","description":"Сначала изучить отрисованную страницу, затем пройти пользовательский сценарий. В комплекте Anthropic есть примеры Playwright и помощник запуска локальных серверов.","applications":["Проверить отправку формы и сообщение об успехе","Воспроизвести баг в динамическом интерфейсе","Собрать скриншоты и сообщения консоли"],"outcome":"Воспроизводимый браузерный сценарий с наблюдаемым результатом и артефактами.","githubRepo":"anthropics/skills","markdown":"https://kossolapov.com/api/public/materials/webapp-testing?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/webapp-testing?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/webapp-testing","download":null,"source":{"mode":"link-only","originalName":"webapp-testing","author":{"name":"Anthropic","url":"https://github.com/anthropics","attribution":"Original skill: Anthropic. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Anthropic. Редакционное описание: kossolapov.com."},"repository":"anthropics/skills","path":"skills/webapp-testing/SKILL.md","revision":"41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f","url":"https://github.com/anthropics/skills/blob/41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f/skills/webapp-testing/SKILL.md","license":{"name":"Apache-2.0","url":"https://github.com/anthropics/skills/blob/41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f/skills/webapp-testing/LICENSE.txt","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["Python, Playwright and its installed browser","An authorized local development server and test data"],"keys":["Test account only if the scenario requires authentication"],"paidDependencies":[],"limitations":["The server helper executes supplied shell commands; use only reviewed project commands.","Its generic networkidle wait may need replacement with a specific readiness condition.","Inspect helper process cleanup for long-running or noisy servers; this is not a sandbox.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"skills/webapp-testing/LICENSE.txt","sha256":"bc6b3af2f331cbc7fb0da1344efb2cbe5877a31498b4d70dbc7000f3405a1362","bytes":11345,"role":"license"},{"path":"skills/webapp-testing/SKILL.md","sha256":"51b7349e77ec63b7744a6f63647e7566a0b4d2e301121cc10e8c2113af6556a2","bytes":3913,"role":"upstream"},{"path":"skills/webapp-testing/examples/console_logging.py","sha256":"ea46877289acb82da7e7ce59d0bc37c8977cd57e2a006d0c88d7a1c625bf95da","bytes":1027,"role":"upstream"},{"path":"skills/webapp-testing/examples/element_discovery.py","sha256":"d63c89604a22f8845d724e95dda45db49b1bf57c25ce0a83afbb7b8da3d402f0","bytes":1463,"role":"upstream"},{"path":"skills/webapp-testing/examples/static_html_automation.py","sha256":"9d533aafb875ee3ab8b8ebf8f5b9003ac8d999da3d09b285cce252e623140064","bytes":953,"role":"upstream"},{"path":"skills/webapp-testing/scripts/with_server.py","sha256":"b0dcf4918935b795f4eda9821579b9902119235ff4447f687a30286e7d0925fd","bytes":3693,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Python, Playwright и установленный для него браузер","Разрешённый локальный сервер разработки и тестовые данные"],"keys":["Тестовая учётная запись, только если сценарию нужна аутентификация"],"paidDependencies":[],"limitations":["Помощник запуска серверов выполняет переданные shell-команды; используйте только проверенные команды проекта.","Общее ожидание networkidle может потребовать замены на конкретный признак готовности.","Для долгоживущих серверов или большого объёма логов проверьте завершение процессов; помощник не является изолированной средой.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"doc-coauthoring","kind":"skill","title":"Документ, понятный новому читателю","description":"Собрать контекст, уточнить документ по разделам и проверить его свежим читателем. Метод Anthropic помогает обнаружить допущения, которые авторы перестали замечать.","applications":["Подготовить RFC или предложение для команды","Написать техническую спецификацию с решениями и ограничениями","Проверить, понятен ли документ без истории обсуждения"],"outcome":"Согласованный документ и исправленные пробелы, найденные при читательской проверке.","githubRepo":"anthropics/skills","markdown":"https://kossolapov.com/api/public/materials/doc-coauthoring?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/doc-coauthoring?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/doc-coauthoring","download":null,"source":{"mode":"link-only","originalName":"doc-coauthoring","author":{"name":"Anthropic","url":"https://github.com/anthropics","attribution":"Original skill: Anthropic. Editorial description: kossolapov.com.","attributionRu":"Автор оригинального скилла: Anthropic. Редакционное описание: kossolapov.com."},"repository":"anthropics/skills","path":"skills/doc-coauthoring/SKILL.md","revision":"41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f","url":"https://github.com/anthropics/skills/blob/41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f/skills/doc-coauthoring/SKILL.md","license":{"name":"Not specified","url":"https://github.com/anthropics/skills/blob/41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f/README.md","evidenceType":"source-reference"},"packageVersion":1,"checkedAt":"2026-09-08T00:43:17.332838+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; tool access depends on the host"],"tools":["A text editor and source material","A fresh model conversation for reader testing; document connectors are optional"],"keys":["Optional authorized document connectors"],"paidDependencies":["Fresh reader-model calls may consume additional usage"],"limitations":["Designed for collaborative long-form work and can require several rounds of questions.","No explicit file-level redistribution license was found; the original remains with its author.","Reader testing does not replace checking factual claims against sources.","Editorial selection based on source inspection, not a comparative performance certification."]},"files":[{"path":"README.md","sha256":"2fb9c4cc026366ea6e21c60cb23c908a4d27c62071819cc06beffaac102d0694","bytes":5552,"role":"upstream"},{"path":"skills/doc-coauthoring/SKILL.md","sha256":"2e47d78846faeea4a56e9809c52700087a15a2155a3f293a3efbaded81398ef4","bytes":15815,"role":"upstream"}],"compatibilityRu":{"agents":["Агент, умеющий читать инструкции Agent Skills; доступ к инструментам зависит от среды"],"tools":["Текстовый редактор и исходные материалы","Новый диалог с моделью для читательской проверки; подключения документов необязательны"],"keys":["Необязательные разрешённые подключения к документам"],"paidDependencies":["Вызовы модели в роли нового читателя могут расходовать дополнительные лимиты"],"limitations":["Метод рассчитан на совместную работу над большими документами и может потребовать нескольких раундов вопросов.","Явная лицензия на распространение файла не найдена; оригинал остаётся у автора.","Читательская проверка не заменяет сверку фактических утверждений с источниками.","Редакционный отбор по изученным исходникам, без сертификации сравнительной эффективности."]},"review":{"kind":"editorial","reviewedAt":"2026-09-08T00:49:04.747035+00:00"}},"package":null},{"slug":"agent-network","kind":"skill","title":"Agent Network: своя команда агентов","description":"Astra и 12 специалистов в локальной системе Codex. Ставьте задачи из карты или управляющего чата, получайте файлы результатов и просматривайте историю выполнения.","applications":["Разделить задачу между специалистами Engineering, Research и Operations","Передать результат одного агента следующему для проверки","Вернуться к сохранённым заданиям, файлам и событиям через Replay"],"outcome":"Локальное приложение с картой команды, двумя скиллами установки и управления, реальными заданиями и сохранёнными результатами.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/agent-network?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/agent-network?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/agent-network","download":"https://kossolapov.com/downloads/agent-network/1.0.0/Agent-Network-Video-Kit.zip","source":null,"package":{"version":"1.0.0","installation":{"ru":["Создайте папку «Рабочая система» и откройте её в настольном Codex.","Скачайте и распакуйте архив в эту папку. Внутри должна появиться папка agent-network-video-kit.","Скопируйте установочный промпт со страницы и отправьте его в задачу Codex.","При необходимости ответьте на два вопроса о своей работе и первой задаче. Вход в аккаунт выполните сами.","Дождитесь отчёта о проверке, откройте локальную ссылку и задайте первую миссию."],"en":["Create a “Working System” folder and open it in the Codex desktop app.","Download and extract the archive into that folder. It should contain the agent-network-video-kit directory.","Copy the installation prompt from this page and send it to a Codex task.","If asked, answer two questions about your work and first task. Complete account sign-in yourself.","Wait for the verification report, open the local URL and start your first mission."]},"requirements":{"ru":["macOS, настольный Codex, Node.js 22.13+ и установленный Codex CLI.","Нужен доступ к gpt-6-astra; реальные задачи расходуют лимиты вашего аккаунта.","Интернет нужен для установки зависимостей и выполнения задач Codex.","Интерфейс приложения на английском; архив и установочный промпт включают инструкции на русском."],"en":["macOS, the Codex desktop app, Node.js 22.13+ and Codex CLI.","Access to gpt-6-astra is required; real tasks use your account limits.","Internet access is needed to install dependencies and run Codex tasks.","The app interface is in English; the archive and installation prompt include Russian instructions."]},"limitations":{"ru":["Постоянные чаты создаются штатными инструментами настольного Codex, если они доступны. Если создание чатов недоступно, установщик завершит установку приложения и сообщит об этом ограничении.","Миссии из веб-интерфейса выполняются отдельными запусками Codex CLI. Они не выполняются внутри постоянных чатов.","Replay воспроизводит сохранённые события и не запускает задания повторно.","Full Access и Computer History не обязательны. Пакет не включает слежение или фоновые расписания.","Для работы нужен включённый локальный компьютер. Windows, Linux и Claude Code в этом выпуске не проверены."],"en":["Persistent chats are created through native Codex desktop tools when available. Otherwise, the installer completes the app installation and reports this limitation.","Web missions use separate Codex CLI runs. They do not execute inside the persistent chats.","Replay plays recorded events without rerunning tasks.","Full Access and Computer History are not required. The package does not enable monitoring or background schedules.","The local computer must stay on while work runs. Windows, Linux and Claude Code were not tested for this release."]},"verification":{"ru":"По отчёту выпуска от 9 сентября 2026 года: установка в чистую папку на Mac, production-сборка, 17 тестов исполнителя/истории/Replay и 3 теста установщика; реальная миссия Forge → Sentinel → Astra с проверкой файлов и сохранение истории после перезапуска. Это проверка на одном Mac, не на другом аккаунте. Browser UI QA самого приложения не проводилась; постоянные чаты ранее проверялись в авторской системе. Подробности находятся в VERIFICATION.md внутри архива.","en":"The September 9, 2026 release report covers installation into a clean folder on a Mac, a production build, 17 runtime/history/Replay tests and 3 installer tests, a real Forge → Sentinel → Astra mission with file verification, and history persistence after restart. This was tested on one Mac, not another account. Browser UI QA of the app was not performed; persistent chats were previously tested in the author’s system. See VERIFICATION.md in the archive."},"download":"/downloads/agent-network/1.0.0/Agent-Network-Video-Kit.zip","sha256":"a1ba2b25ebbd04af217a7654dd09a8adcf784f5763138a945664ce252472807b","bytes":368085,"installPrompt":"Установи мне рабочую агентскую систему из приложенного пакета agent-network-video-kit в открытой локальной папке «Рабочая система».\n\nНайди пакет среди приложений к задаче или файлов этой папки. Если это ZIP — распакуй его. Прочитай skills/agent-system-install/SKILL.md и выполни установку по нему. Используй готовый шаблон из пакета, сохрани дизайн: Astra в центре, ядра-агенты на ветках слева и справа, зум, просмотр задач, передача заданий и результатов, Replay. Интерфейс оставь на английском. Не заменяй реальную работу имитацией.\n\nСпроси максимум два вопроса: чем я занимаюсь и какую первую задачу хочу делегировать. Пока я отвечаю, делай независимые шаги установки. Если я хочу просто начать, используй базовую команду Engineering / Research / Operations.\n\nПроверь Node.js и Codex CLI, установи необходимые зависимости, собери и запусти приложение. Используй GPT 6 Astra (gpt-6-astra), если она доступна моему аккаунту. Если нет — объясни точную причину; другую модель без моего выбора не подставляй. Вход в аккаунт я выполню сам, если потребуется.\n\nРазрешаю создать отдельные чаты для Astra и каждого базового специалиста штатными инструментами Codex и объединить их в разделе «Рабочая система». Этот чат оставь управляющим. Запиши реальные идентификаторы, дай агентам роли и первые промпты, дождись их готовности. Если такие инструменты недоступны, не выдумывай чаты: закончи установку приложения и укажи, какой шаг не выполнен.\n\nАдаптируй рабочие инструкции к моим ответам, сохрани их в папке команды. Разрешаю одну короткую реальную проверку: один агент создаёт файл, второй проверяет его, Astra собирает результат. Проверь сохранённые файлы и анимацию через реальные события, затем дай рабочую локальную ссылку и короткую инструкцию, как ставить задачи из этого чата и из карты.\n\nНе включай Full Access, Computer History, слежение, расписания, внешние рассылки или публикации как часть установки. Не копируй чужую историю, аккаунты или идентификаторы чатов. Повторный запуск должен продолжать мою установку, а не создавать дубликаты.\n","promptLanguage":"ru","contents":{"ru":["agent-system-install — скилл установки и исходники приложения.","agent-system-control — скилл управления заданиями и результатами.","Карта команды: Astra, 12 специалистов, масштабирование и просмотр заданий.","Готовые промпты установки, первой миссии и управления.","История событий, реальные файлы результатов и Replay."],"en":["agent-system-install — installation skill and app source.","agent-system-control — task and result management skill.","Team map: Astra, 12 specialists, zoom and task inspector.","Prompts for installation, the first mission and team control.","Event history, actual result files and Replay."]}}},{"slug":"slicer-skill","kind":"skill","title":"Slicer: скилл для кода и работы с 3D-сценой","description":"Найти решение в исходниках и документации 3D Slicer, подготовить скрипт и при отдельно подключённом MCP показать реальную сцену на открытом примере.","applications":["Найти API для Python-скрипта или расширения Slicer","Разобрать MRML-сцену и управление видами","Подготовить демонстрацию CTChest через отдельный MCP"],"outcome":"Ссылки на код и документацию, проверяемый план действий; при доступном MCP — реальные сведения о сцене и снимок экрана.","githubRepo":"pieper/slicer-skill","markdown":"https://kossolapov.com/api/public/materials/slicer-skill?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/slicer-skill?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/slicer-skill","download":null,"source":{"mode":"link-only","originalName":"slicer","author":{"name":"Steve Pieper","url":"https://github.com/pieper","attribution":"Original skill: Steve Pieper and contributors. Editorial guide: kossolapov.com.","attributionRu":"Оригинальный скилл: Steve Pieper и участники проекта. Редакционная инструкция: kossolapov.com."},"repository":"pieper/slicer-skill","path":"SKILL.md","revision":"c3b9f3bbc2b95938e73f1ad0c2e6c01a8fd2e32f","url":"https://github.com/pieper/slicer-skill/blob/c3b9f3bbc2b95938e73f1ad0c2e6c01a8fd2e32f/SKILL.md","license":{"name":"Apache-2.0","url":"https://github.com/pieper/slicer-skill/blob/c3b9f3bbc2b95938e73f1ad0c2e6c01a8fd2e32f/LICENSE","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-14T17:46:14.189137+00:00","compatibility":{"agents":["An agent that can read Agent Skills instructions; MCP support is separately required for live Slicer control"],"tools":["Git, Bash and Perl for the setup helper; web mode avoids large source clones","Installed 3D Slicer and its Python console for the separate slicer-mcp-server.py","Optional Python search dependencies and disk space for BM25/hybrid indexes"],"keys":[],"paidDependencies":["The chosen AI host or remote compute may incur costs"],"limitations":["Source-reviewed only: neither this skill nor its MCP server was run for this release.","The MCP bridge can execute Python with the privileges of the Slicer process; use an isolated public-sample environment.","MCP responses can reach a cloud AI host; a local Slicer window does not guarantee local-only data handling.","Installing the skill does not install Slicer or connect MCP. The full setup can clone many repositories; choose its mode deliberately.","Software control and screenshots are not clinical interpretation or a complete CT review.","The pinned SKILL.md links to references/mcp.md, which is absent in that revision. Inspect the included slicer-mcp-server.py and verify MCP setup separately; the referenced setup guide is unavailable."]},"files":[{"path":"LICENSE","sha256":"098a837115eee56c633f88d0fa6dd197321296e1228873f4b402e49fe4bd7de0","bytes":11358,"role":"license"},{"path":"README.md","sha256":"f30f73c80c253f5b32aa8b08e9a9d59d494ee64a87e2b9ee4361fa8c3a47d7e5","bytes":6664,"role":"upstream"},{"path":"SKILL.md","sha256":"7d89e36438fcc064a2cc9fe9acdf3fd51b446ff22a78628b707c357b76b5b4bd","bytes":48796,"role":"upstream"},{"path":"slicer-mcp-server.py","sha256":"31b0cff2880a248f173964a8d8edb591d3eadcc4c019889e8f32eadb65f6abbc","bytes":20282,"role":"upstream"},{"path":"setup.sh","sha256":"280bb8e98ccd55327daa00f8600169d06496205ca8c1904c5ef97c7aae16e12b","bytes":31663,"role":"upstream"},{"path":".gitignore","sha256":"61a090f79c20c43aa16fd4777d3d8d650a5f8cc130ae0ca2fa2cc94ab623b0cf","bytes":773,"role":"upstream"},{"path":"scripts/bm25_lib.py","sha256":"823f2c6bb723de69af8d10ed58ed75b781fb62221907b4b0154a694abb0031ac","bytes":5246,"role":"upstream"},{"path":"scripts/build_bm25.py","sha256":"426f27f1bdd978c79c781e46a92e51ffde2be3b2a064d111c060ab8094bc1b28","bytes":7928,"role":"upstream"},{"path":"scripts/build_vector.py","sha256":"a521b4d3f8b534b7e6bd0ac3456532fb73432a3fa60b0392a3e52311823f4265","bytes":5302,"role":"upstream"},{"path":"scripts/extract_pw_stats.py","sha256":"278b9f7a2c739e1793326b8d14ce58060adedf6c163481d4c96c79526d558cde","bytes":13645,"role":"upstream"},{"path":"scripts/requirements.txt","sha256":"7fb69c0918a70a145f4ff7b0174745877c6c6f7f97b70aafe40b22767e56459e","bytes":35,"role":"upstream"},{"path":"scripts/vector_lib.py","sha256":"0f91e05526506213c831d6a88af47407175f68714f443783347f1fd333820031","bytes":8688,"role":"upstream"},{"path":"slicer-skill-search-mcp.py","sha256":"2e80028edb1a1f5b02b556cd653df7ea659b71db66cc4509a70cff5c62b8e765","bytes":12575,"role":"upstream"}],"compatibilityRu":{"agents":["Агент с поддержкой инструкций Agent Skills; для управления открытым Slicer отдельно нужна поддержка MCP"],"tools":["Git, Bash и Perl для setup; режим web не клонирует большие репозитории","Установленный 3D Slicer и его Python-консоль для отдельного slicer-mcp-server.py","Необязательные Python-зависимости поиска и место для BM25/hybrid-индексов"],"keys":[],"paidDependencies":["Выбранный AI-сервис или удалённые вычисления могут быть платными"],"limitations":["Изучены исходники: этот скилл и его MCP-сервер в рамках выпуска не запускались.","MCP-мост выполняет Python с правами процесса Slicer; для демонстрации используйте изолированную среду и открытый пример.","Ответы MCP могут передаваться облачной модели; локальное окно Slicer не означает, что данные остаются только на компьютере.","Установка скилла не устанавливает Slicer и не подключает MCP. Полный setup клонирует много репозиториев; режим выбирайте явно.","Управление программой и снимки экрана не являются клиническим заключением или полной проверкой КТ.","Закреплённый SKILL.md ссылается на references/mcp.md, которого нет в этой ревизии. Изучите включённый slicer-mcp-server.py и отдельно проверьте настройку MCP: указанный справочник недоступен."]},"review":{"kind":"editorial","reviewedAt":"2026-09-14T17:50:11.929546+00:00"}},"package":null},{"slug":"totalsegmentator-skill","kind":"skill","title":"TotalSegmentator: скилл выбора задач сегментации","description":"Официальный скилл учит агента находить доступные классы через MCP, выбирать задачу, устройство и режим скорости, а затем фиксировать маски и настройки запуска.","applications":["Выбрать точные классы и совместимую задачу","Подготовить сегментацию открытого КТ-примера","Зафиксировать параметры, маски и ограничения статистики"],"outcome":"Явно выбранная операция и журнал результатов; маски появляются только после реального запуска отдельно установленного MCP-сервера.","githubRepo":"wasserth/TotalSegmentator","markdown":"https://kossolapov.com/api/public/materials/totalsegmentator-skill?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/totalsegmentator-skill?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/totalsegmentator-skill","download":null,"source":{"mode":"link-only","originalName":"totalsegmentator","author":{"name":"Jakob Wasserthal and TotalSegmentator contributors","url":"https://github.com/wasserth/TotalSegmentator","attribution":"Original skill and software: the TotalSegmentator team, University Hospital Basel. Editorial guide: kossolapov.com.","attributionRu":"Оригинальный скилл и программа: команда TotalSegmentator, University Hospital Basel. Редакционная инструкция: kossolapov.com."},"repository":"wasserth/TotalSegmentator","path":"skills/totalsegmentator/SKILL.md","revision":"a0d35d5996a9c096caed4184cededdbf2ede5268","url":"https://github.com/wasserth/TotalSegmentator/blob/a0d35d5996a9c096caed4184cededdbf2ede5268/skills/totalsegmentator/SKILL.md","license":{"name":"Apache-2.0","url":"https://github.com/wasserth/TotalSegmentator/blob/a0d35d5996a9c096caed4184cededdbf2ede5268/LICENSE","evidenceType":"license-file"},"packageVersion":1,"checkedAt":"2026-09-14T17:46:14.189137+00:00","compatibility":{"agents":["An Agent Skills-compatible agent with an MCP client"],"tools":["Python, uv or pipx, PyTorch and a separately installed TotalSegmentator[mcp] environment","A compatible CPU/GPU/MPS device, RAM, disk space and access to model weights","A permitted public NIfTI sample or supported DICOM input and an image viewer for mask review"],"keys":["Some tasks require a separate TotalSegmentator license; inspect the selected task first"],"paidDependencies":["Licensed tasks and rented compute can incur costs; the total task is listed as Apache-2.0 in the reviewed README"],"limitations":["This pinned skill and MCP server were source-reviewed, not executed. The earlier CLI 2.18.0 sample run is separate evidence.","MCP HTTP mode has no authentication in the reviewed documentation; prefer local stdio, or restrict HTTP to loopback.","The first inference can download weights. Paths refer to the server machine.","Upstream documents anonymous usage reporting and its send_usage_stats setting; inspect data flows before use.","An empty pathology mask does not exclude disease; incomplete structures can distort statistics. Outputs are estimates, not clinical findings."]},"files":[{"path":"LICENSE","sha256":"c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4","bytes":11357,"role":"license"},{"path":"README.md","sha256":"5f02478b22f02b0c5d4c05d4d5878355ebd4c8145dc7eb485d430e11abba13ee","bytes":45171,"role":"upstream"},{"path":"pyproject.toml","sha256":"0808693f6b5001134c8853ba6a9a4154775a45b5c864d397a7a64f9e9a88ae7c","bytes":1695,"role":"upstream"},{"path":"setup.py","sha256":"05212244280e077e33de46862756b4711b3a11682524bc240b4c71d26dcffa6f","bytes":5470,"role":"upstream"},{"path":"skills/totalsegmentator/SKILL.md","sha256":"7d9a0848081a6eb4c9f88b6ded63efdf9cc86837cb6d98af2de54c9302ed0d4e","bytes":3988,"role":"upstream"},{"path":"totalsegmentator_mcp/README.md","sha256":"30c9f72c9cf8dddaffebe419d44c17acf54fe31f59519b656f43406148b83458","bytes":3342,"role":"upstream"},{"path":"totalsegmentator_mcp/__init__.py","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","bytes":0,"role":"upstream"},{"path":"totalsegmentator_mcp/mcp_server.py","sha256":"265dc2fa43176c081618111475d87db65cc0ca248571a6c9f2913f94c6d6b34d","bytes":11073,"role":"upstream"},{"path":"totalsegmentator_mcp/utils.py","sha256":"69717057e66f1103ec77fdc07db3833b3fd8d65ba347c47f2b24853ca0706bfb","bytes":4085,"role":"upstream"}],"compatibilityRu":{"agents":["Агент с поддержкой Agent Skills и MCP-клиентом"],"tools":["Python, uv или pipx, PyTorch и отдельно установленная среда TotalSegmentator[mcp]","Совместимое CPU/GPU/MPS-устройство, память, место на диске и доступ к весам","Разрешённый открытый NIfTI-пример или поддерживаемый DICOM-вход и просмотрщик для проверки масок"],"keys":["Для некоторых задач нужна отдельная лицензия TotalSegmentator; сначала проверьте выбранную задачу"],"paidDependencies":["Лицензируемые задачи и аренда вычислений могут быть платными; задача total обозначена Apache-2.0 в изученном README"],"limitations":["Этот скилл и MCP изучены по исходникам и не запускались. Прежний запуск CLI 2.18.0 на примере — отдельное свидетельство.","В изученной документации HTTP-режим MCP не имеет аутентификации; предпочтителен локальный stdio, либо HTTP только на loopback.","Первый запуск может скачать веса. Пути относятся к машине MCP-сервера.","Авторы описывают анонимную статистику использования и настройку send_usage_stats; перед работой проверьте передачу данных.","Пустая маска патологии не исключает заболевание; неполные структуры искажают статистику. Выходы модели — оценки, а не клинические выводы."]},"review":{"kind":"editorial","reviewedAt":"2026-09-14T17:50:11.929546+00:00"}},"package":null},{"slug":"ct-chat-reproduction","kind":"template","title":"CT-CHAT: план исследовательского запуска","description":"Проверить окружение, GPU, веса и кодирование 3D КТ грудной клетки до запуска модели. Авторский шаблон плана; CT-CHAT — исследовательская модель, а не скилл.","applications":["Сверить GPU и версии зависимостей с выбранной моделью","Проверить HU, spacing и пути энкодера","Подготовить журнал одного воспроизводимого опыта"],"outcome":"План среды и команд с отмеченными неизвестными, путями весов и формой проверки исходного ответа.","githubRepo":"ibrahimethemhamamci/CT-CHAT","markdown":"https://kossolapov.com/api/public/materials/ct-chat-reproduction?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/ct-chat-reproduction?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/ct-chat-reproduction","download":"https://kossolapov.com/downloads/materials/ru/ct-chat-reproduction.md","source":null,"package":null},{"slug":"merlin-reproduction","kind":"template","title":"Merlin: план воспроизведения генерации отчёта","description":"Разделить установку библиотеки, загрузку весов и получение текста от модели на одном открытом примере. Авторский исследовательский шаблон, а не скилл Merlin.","applications":["Проверить требования выбранной задачи Merlin","Подготовить путь от DataLoader до исходного отчёта","Спланировать проверку пропусков и неподтверждённых утверждений"],"outcome":"План одной задачи с требованиями, командами, местом для исходного ответа и вопросами для проверки.","githubRepo":"StanfordMIMI/Merlin","markdown":"https://kossolapov.com/api/public/materials/merlin-reproduction?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/merlin-reproduction?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/merlin-reproduction","download":"https://kossolapov.com/downloads/materials/ru/merlin-reproduction.md","source":null,"package":null},{"slug":"ct-ai-kit","kind":"skill","title":"КТ-набор: один ZIP для Codex и Claude Code","description":"Передайте архив агенту и запустите демо на открытом КТ-примере. Внутри общий скилл, скилл Slicer, скилл TotalSegmentator и шаблоны CT-CHAT/Merlin.","applications":["Начать с одного архива в Claude Code или Codex","Получить маску и изображения сегментации открытого КТ-примера","Продолжить работу в Slicer или подготовить запуск CT-CHAT/Merlin"],"outcome":"После успешного запуска — маска печени, три изображения с наложением, HTML-отчёт и журнал. Агент проверяет окружение и сообщает конкретную причину, если запуск невозможен.","githubRepo":null,"markdown":"https://kossolapov.com/api/public/materials/ct-ai-kit?lang=ru&format=md","prompt":"https://kossolapov.com/api/public/materials/ct-ai-kit?lang=ru&format=prompt","url":"https://kossolapov.com/ru/materials/ct-ai-kit","download":"https://kossolapov.com/downloads/ct-ai-kit/CT-AI-Kit.zip","source":null,"package":{"version":"1.0.0","download":"/downloads/ct-ai-kit/CT-AI-Kit.zip","sha256":"65cdd2374ef5d5cbb517b25dafcf8cd9c01ead52ff6a3e9efbbe6bf49fb8c8b9","bytes":118457,"installPrompt":"Set up and run CT AI Kit in this project using the current agent (Codex or Claude Code).\nUse the attached CT-AI-Kit.zip if present, otherwise download https://kossolapov.com/downloads/ct-ai-kit/CT-AI-Kit.zip .\nExpected archive SHA-256: 65cdd2374ef5d5cbb517b25dafcf8cd9c01ead52ff6a3e9efbbe6bf49fb8c8b9 .\nVerify the archive hash, extract it into a new folder without overwriting files, read ct-ai-kit/START-HERE.md and follow ct-ai-kit/SKILL.md.\nInstall the whole kit in this project's supported skill directory. Prepare an isolated environment and run the public CT demo, downloading only the dependencies and public model weights needed for that demo.\nShow the actual mask overlay and HTML report, and save the masks and execution log. Use local computation; do not rent cloud hardware. If execution is blocked, report the observed blocker without claiming success. Reply in my language.","promptLanguage":"en","platforms":{"ru":"Codex · Claude Code","en":"Codex · Claude Code"},"summary":{"ru":"Один ZIP: скиллы, инструкции, установщик и запуск публичного демо.","en":"One ZIP: skills, instructions, installer and a public demo runner."},"installation":{"ru":["Скачайте CT-AI-Kit.zip и сохраните его в папку проекта Codex или Claude Code.","Отправьте агенту установочный промпт. Он распакует архив и прочитает START-HERE.md.","Агент установит набор в папку скиллов проекта, проверит среду и загрузит зависимости выбранного демо.","После запуска откройте report.html или overlay.png; маска и журнал будут рядом."],"en":["Download CT-AI-Kit.zip into your Codex or Claude Code project folder.","Send the installation prompt. The agent extracts the archive and reads START-HERE.md.","The agent installs the project skill, checks the environment and downloads dependencies for the selected demo.","After execution, open report.html or overlay.png; the mask and log are saved alongside."]},"contents":{"ru":["Общий скилл ct-ai-kit с инструкцией запуска на английском.","Неизменённые исходники скилла Slicer и выбранные файлы скилла/MCP TotalSegmentator с лицензиями Apache-2.0.","Авторские шаблоны CT-CHAT и Merlin на русском и английском.","Проверка окружения, установщик, CLI-демо и генератор PNG/HTML-отчёта."],"en":["The coordinating ct-ai-kit skill and English startup instructions.","Unmodified Slicer skill sources and selected TotalSegmentator skill/MCP files with Apache-2.0 licenses.","Original CT-CHAT and Merlin planning templates in Russian and English.","Environment check, installer, CLI demo and PNG/HTML report generator."]},"requirements":{"ru":["Codex или Claude Code с доступом к локальным файлам и выполнению команд.","Совместимый Python 3.10+, Git, интернет и место для библиотек и весов; агент проверяет окружение.","Для демо нужен совместимый PyTorch: GPU/MPS при наличии, CPU как более медленный вариант."],"en":["Codex or Claude Code with local file access and command execution.","Compatible Python 3.10+, Git, internet and disk space for dependencies and weights; the agent checks the environment.","A compatible PyTorch runtime: GPU/MPS when available, or a slower CPU route."]},"limitations":{"ru":["ZIP содержит весь набор инструкций и вспомогательного кода; Python, 3D Slicer, полные библиотеки и веса загружаются отдельно по выбранному сценарию.","Демо по умолчанию — TotalSegmentator CLI на одном открытом примере. CT-CHAT/Merlin не запускаются автоматически вместе с ним.","Установщик не меняет глобальные настройки и не подключает MCP. Для работы MCP нужен отдельный шаг настройки.","Выходы модели не являются медицинским заключением. Скорость и возможность запуска зависят от оборудования и разрешений."],"en":["The ZIP contains all toolkit instructions and helper code; Python, 3D Slicer, full libraries and weights are separate per-workflow installations.","The default demo uses TotalSegmentator CLI on one public sample. CT-CHAT/Merlin do not automatically run alongside it.","The installer does not change global settings or connect MCP; MCP requires a separate setup step.","Model output is not a clinical assessment. Runtime and availability depend on hardware and permissions."]},"verification":{"ru":"Проверены 22 исходных файла по хешам; прошли 8 тестов упаковки, установки и обработки ошибок, включая обе структуры скиллов. Генератор отчёта проверен на синтетических объёмах. Полный запуск модели через этот ZIP, Slicer MCP и работа в другом аккаунте Claude Code/Codex не проверялись.","en":"All 22 upstream files were hash-verified; 8 packaging, installation and failure-handling tests passed, including both skill layouts. Report rendering was tested on synthetic volumes. Full model execution through this ZIP, Slicer MCP and execution in another Claude Code/Codex account were not tested."}}}]}