⚒️ Forge — IT-фабрика, ключевой навык семейства SvarogForge. Supervisor/Worker оркестратор полного IT-цикла: хотелка → Talaria (гонцы pre-market) → отчёт → OK Gate → команда субагентов → Crucible → релиз. Оптимизирован для DeepSeek V4 Flash. Делегирование через delegate_task(role='orchestrator').
Resources
13Install
npx skillscat add svarogforge/forge Install via the SkillsCat registry.
⚒️ Forge — IT-фабрика
«Ключевой навык семейства SvarogForge. Из хотелки — в релиз.»
Forge — основной рабочий навык IT-фабрики. Получает хотелку от пользователя и проводит её через весь IT-цикл: анализ → OK Gate → команда → качество → релиз.
🎯 Когда включать
Навык активен, когда пользователь говорит:
| Скажи | Что произойдёт |
|---|---|
| «Forge, сделай [идея]» | Полный цикл: гонцы → отчёт → аппрув → сборка → релиз |
| «Кузница/кузня, [идея]» ⚒️ | То же самое |
| «Сделай [проект]» | Pre-market анализ как первый шаг |
| «Forge, проанализируй [идея]» | Только гонцы + отчёт, без сборки |
| «Forge, собери [что уже решено]» | Пропустить OK Gate, сразу сборка |
Не включать:
- Если пользователь просто обсуждает идею без просьбы сделать — не запускай пайплайн
- Если он не сказал «Forge», «Кузница», «сделай» или «собери»
- Если запрос — мелкая правка в коде (тогда просто делай, без пайплайна)
🧱 Архитектура
Пользователь: "Forge, сделай [идея]"
│
├── 1️⃣ PRE-MARKET ANALYSIS (гонцы Talaria)
│ ├── delegate_task → гонец 1: конкуренты на GitHub/рынке
│ ├── delegate_task → гонец 2: востребованность ниши
│ └── delegate_task → гонец 3: анализ существующих решений
│
├── 2️⃣ ОТЧЁТ + OK GATE ─────────────────────────────────────
│ ├── Свести отчёты гонцов в единый отчёт
│ ├── Показать Ванюше: делать/не делать + обоснование
│ └── Ждать ответа: OK → фаза 3 | НЕТ → отмена
│ │
├── 3️⃣ (ЕСЛИ OK) ЗАПУСК КОМАНДЫ СУБАГЕНТОВ │
│ ├── CEO Agent → стратегия, roadmap │
│ ├── SMM Agent → план продвижения │
│ ├── Security Agent → аудит конфигов/кода │
│ ├── Designer Agent → UI/визуал/брендинг │
│ ├── Debug Master → качество/тесты │
│ └── Мои руки → backend/frontend/ML │
│ │
│ ┌─ 🛡️ SECURITY AUDIT ────────────────────── │
│ │ После сборки: проверка личных данных, │
│ │ секретов, CI-конфигов, .gitignore, токенов │
│ └─────────────────────────────────────────── │
│ │
│ ├── 4️⃣ ВЕРИФИКАЦИЯ (Crucible) │
│ │ └── Проверка качества, тесты, безопасность │
│ │
└── 5️⃣ РЕЛИЗ + ДОКУМЕНТАЦИЯ │
└── README, CI/CD, деплой, release notes │📋 Фаза 1: Pre-Market Analysis (гонцы Talaria)
Запуск 3 параллельных гонцов:
from hermes_tools import delegate_task
# Фаза 1.1 — запуск гонцов
results = delegate_task(
tasks=[
dict(goal="Провести анализ конкурентов на GitHub/рынке для: [идея]. Найти проекты, звёзды, активность.", context="Это гонец 1 из 3. Верни структурированный отчёт с URL. Используй `gh api` (не curl) — у curl лимит 60 запросов/час. См. references/github-competitor-analysis.md", role="leaf"),
dict(goal="Оценить востребованность ниши/идеи: [идея]. Тренды, поисковые запросы, размер рынка.", context="Это гонец 2 из 3. Верни отчёт с источниками.", role="leaf"),
dict(goal="Проанализировать существующие решения для: [идея]. Что уже есть, что не решено, где точка входа.", context="Это гонец 3 из 3. Верни отчёт с рекомендациями.", role="leaf"),
]
)
**Техника GitHub-анализа (проверено 08.07.2026):**
- Используй `gh api` а не `curl` — curl к GitHub API без токена лимитирован 60 запросов/час
- `gh api "repos/<owner>/<repo>" --jq "{stargazers_count, language, created_at, description}"` — получает звёзды
- `gh search repos "<query>" --sort stars --limit 10 --json fullName,stargazersCount` — поиск конкурентов
- **Подробный workflow:** смотри `references/github-competitor-analysis.md` в этом же навыкеВерификация гонцов:
- Каждый отчёт должен содержать конкретные URL, цифры, даты
- Если гонец вернул пустоту или "ничего не нашёл" — не доверяй, перезапусти
- Cross-check факты: если один говорит «рынок 10 млрд», а второй «рынка нет» — это противоречие, укажи в отчёте
🚦 Фаза 2: OK Gate
Формат отчёта пользователю:
╔══════════════════════════════════════════════╗
║ PRE-MARKET REPORT ║
╚══════════════════════════════════════════════╝
📊 Идея: [кратко]
📦 Название: [предлагаемое имя пакета/проекта]
🏆 Конкуренты:
- [Проект 1] — ⭐ N — [что делает]
- [Проект 2] — ⭐ N — [что делает]
📈 Востребованность: [зелёная/жёлтая/красная]
- Поиск: [что нашлось]
- Тренды: [растёт/падает/стабильно]
🕳 Что не решено (наша точка входа):
- [пробел 1]
- [пробел 2]
🎯 Рекомендация: ДЕЛАТЬ 🟢 / НЕ ДЕЛАТЬ 🔴 / ТРЕБУЕТ УТОЧНЕНИЯ 🟡
[почему]
Командир, твоё решение?Правила Gate:
- Если рекомендация 🟡 — спроси уточняющие вопросы, не запускай сборку пока
- Если 🔴 — не настаивай, предложи альтернативу
- Если 🟢 — жди явного «делай», «давай», «ок», «погнали» от пользователя
- Пока пользователь не сказал OK — фаза 3 НЕ запускается
Timeout Gate (anti-hang):
- Если пользователь не ответил в течение 24 часов (проверь по времени предыдущего сообщения):
- Сохрани snapshot состояния в memory:
проект [имя] на паузе, фаза 2 (Gate), жду OK - Напомни: «Командир, проект [имя] ждёт твоего решения уже N часов. Напомнить позже?»
- Если ответа нет ещё 24 часа — заверши пайплайн с кодом PAUSED
- Никогда не запускай Фазу 3 без явного OK
- Сохрани snapshot состояния в memory:
👷 Фаза 3: Сборка (команда субагентов + мои руки)
После OK Gate запускаются субагенты параллельно и одновременно я начинаю quick-fixes руками:
delegate_task(
tasks=[
dict(goal="CEO Agent: для проекта [имя]. Создай стратегию: цели, OKR, roadmap, риски.", context="Стратегия для IT-проекта.", role="orchestrator"),
dict(goal="SMM Agent: для проекта [имя]. План продвижения: announcement strategy, channels, launch sequence для open-source проекта.", context="Маркетинг для open-source.", role="leaf"),
dict(goal="Security Agent: для проекта [имя]. Аудит на старте: какие данные собираем, где храним, OWASP top-10.", context="Безопасность open-source.", role="leaf"),
dict(goal="Designer Agent: для проекта [имя]. Разработай визуальный стиль: лого, цветовая схема, типографика, бейдж для README.", context="Дизайн для open-source.", role="leaf"),
dict(goal="Debug Master: для проекта [имя]. План тестирования: unit/integration, CI, coverage target, code review process.", context="Контроль качества.", role="leaf"),
]
)
# ⚡ НЕ ЖДИ субагентов — сразу начинай свои quick-fixes
# Пока CEO/SMM/Security/Designer/Debug думают, чини critical баги:
# - Fix битые ссылки, добавь __init__.py
# - Почини verify-report.py
# - Поправь README
# - Настрой CIПараллельный паттерн (проверен на Talaria 08.07.2026):
Время:
t=0 → Запуск субагентов (delegate_task batch)
t=0 → НАЧАЛО моих hands-on фиксов (не жду!)
t=N → Субагенты вернулись + мои фиксы готовы
t=N → Синтез всего вместе в единый планПосле отчётов субагентов — синтезируй всё в единый план исполнения. В плане укажи:
- Что я уже починил своими руками (quick wins)
- Что из отчётов субагентов применимо
- Порядок оставшихся работ: архитектура → код → тесты → docs → деплой
🛡️ Security Audit (после сборки):
Перед переходом в Crucible — обязательный security audit. Запусти автоматически:
# Полный аудит: файлы + история коммитов
python forge.py --audit
# Или по отдельности:
python forge-verify.py --security # файлы: секреты, NSFW, Discord, CI, личные данные
python forge-verify.py --commits # история коммитов (все коммиты через git log | pipe)
git log --format="%s" HEAD~20..HEAD | python forge-verify.py --commitsЧто проверяется:
- Секреты: все .py/.yaml/.md файлы на:
sk-,api_key,api-key,token,password,secret,-----BEGIN - Личные данные: grep на имена (из
.forge-audit-config.json), email, IP - NSFW: README и документация на NSFW-контент
- Discord: discord.gg / discord.com/invite ссылки
- .gitignore: наличие .env, secrets, credentials
- CI-конфиги: токены/ключи в workflows/ci.yml
- Коммиты: все последние коммиты на имена, email, токены, Discord-ссылки
Конфигурация реальных имён:
Создай .forge-audit-config.json в корне проекта (добавлен в .gitignore):
{
"owner_names": ["OwnerName"],
"partner_names": ["PartnerName"],
"agent_names": ["AgentName"],
"server_names": ["ServerName"]
}Этот файл загружается forge-verify.py --commits и forge.py --audit автоматически.
Без него сканер ищет только generic-паттерны (OWNER_NAME, PARTNER_NAME...).
Если найдены утечки — заблокируй пайплайн и исправь до Crucible.
Мои руки (backend/frontend/ML/devops):
Я сам пишу код, настраиваю инфраструктуру, документацию. Использую:
write_file/patchдля кодаterminalдля установок и билдовdelegate_taskдля сложных параллельных задач (code review, тесты)browserдля исследований/документации
🔥 Фаза 4: Верификация (Crucible)
Запустить Crucible после завершения сборки:
# Загрузить crucible skill
skill_view(name='crucible')
# Проверить:
# 1. Код собирается/запускается (unit tests)
# 2. README + документация готовы
# 3. Лицензия, контрибьюторы, CI настроены
# 4. Security: нет секретов в коде
# 5. Designer: бейджи, лого, README оформленыПроверки (minimal):
-
python -m pytestпроходит - В коде нет хардкоженных ключей/токенов
- README содержит: описание, установку, пример, лицензию
- CI пайплайн (GitHub Actions) настроен
-
pip installработает - Лицензия (MIT предпочтительно)
🛡️ Security Audit (перед релизом):
Перед переходом к Фазе 5 — повторный security audit:
- Повтори все 7 шагов из Security Audit после сборки
- Проверь публичный репозиторий: какие файлы видны на GitHub?
gh api repos/svarogforge/[name]/contents --jq '[.[].name]' - Secret scanning: если есть секреты — GitHub их не поймает пока не добавишь
secret_scanning.yml - Dependencies: проверь нет ли известных CVE в зависимостях
- README на расхождение: не обещает ли README то, чего нет в репозитории?
🚀 Фаза 5: Релиз
Чек-лист релиза:
- GitHub: создать репозиторий в svarogforge (публичный или приватный)
gh repo create svarogforge/[name] --public --description "[one-liner]" - PyPI: опубликовать, если Python-пакет
python -m build && twine upload dist/* - README: финальная версия с бейджами, скриншотами, установкой
- Release:
gh release create v0.1.0 --notes "Initial release" - Обновить мета-пакет: добавить в
svarog-forgeкак опциональную зависимость
Пост-релиз:
- Напомнить пользователю объявить о выходе
- Создать issue для первого улучшения (если есть идеи)
- Записать в memory имя проекта, версию и дату релиза
🛡️ Security Audit (после релиза):
После публикации — финальный аудит:
- Проверь публичный релиз:
gh release view v[version]— не содержит ли notes секретов/личных данных - Проверь PyPI: если пакет опубликован — проверь
pip show [package]на личные данные в описании - Topics на GitHub: не раскрывают ли они NSFW/личную информацию
- Проверь CI-логи: не попали ли токены в открытый доступ (GitHub Actions log leak)
- Итоговый вердикт: запиши в memory результат аудита:
security_audit: passed/failed, issues: [...]
🔄 Supervisor/Worker через delegate_task
Правила делегации
| Тип делегации | Когда | Как |
|---|---|---|
| Batch (параллельно) | Независимые задачи (гонцы, субагенты) | delegate_task(tasks=[...]) |
| Sequential | Результат A нужен для B | Последовательные вызовы |
| Hybrid | Сначала batch разведки, потом sequential сборки | Фаза 1 batch + Фаза 3 sequential |
Настройки (ожидаемые в config.yaml)
delegation:
max_concurrent_children: 5 # Сколько гонцов/субагентов одновременно
max_spawn_depth: 2 # Оркестратор -> воркеры (2 уровня)
orchestrator_enabled: true # Включить nested delegationNested делегация
Некоторые субагенты (CEO Agent) сами могут запускать sub-агентов — это нормально.
Уровень вложенности: Forge (depth=0) -> суб-агенты (depth=1) -> sub-sub-агенты (depth=2).
Глубже не надо.
💬 Быстрые команды
| Команда | Что делает |
|---|---|
| «Forge, анализируй [идея]» | Фаза 1 + 2 (гонцы + отчёт, без сборки) |
| «Кузница/кузня, сделай [проект]» | Полный цикл (с OK Gate) |
| «Кузница/кузня, собери [что решено]» | Пропустить Gate, сразу сборка |
| «Forge, релизни [проект]» | Фаза 5 только (подготовить релиз) |
| «Forge, статус» | Где мы сейчас в пайплайне? |
| «Forge, стоп» | Прервать текущий пайплайн |
⚡ Связь с семейством SvarogForge
🏭 SvarogForge (github.com/svarogforge)
│
├── ⚡ Talaria -- гонцы (pre-market разведка)
│ Фаза 1 Forge
│
├── 🔥 Crucible -- верификация (бенчмарк качества)
│ Фаза 4 Forge
│
└── 🛠 Forge -- IT-фабрика (этот навык)
Координирует всёУстановка: pip install svarog-forge
🐛 Типичные грабли
| Грабли | Симптом | Что делать |
|---|---|---|
| Гонцы галлюцинируют | Дают цифры без источников, выдумывают проекты | Требовать URL, перезапускать при пустых отчётах |
| OK Gate проскок | Начинаешь сборку без явного «да» | Не коди, пока пользователь не аппрувнул |
| Слишком много субагентов | 5+ параллельных — контекст раздувается | Batch субагентов = 1 вызов delegate_task |
| Фаза 3 — не моя работа | Пытаюсь делегировать всё, ничего не делаю сам | Я — руки Forge. Code, config, docs — моё |
| Pre-market не равно собирать | Анализ рынка заменяю кодогенерацией | Самая ценная фича — сказать «нет». Не кодить без анализа |
| Забываю упаковать | Сделал код, забыл README/лицензию/CI/релиз | Фаза 4 + Фаза 5 — обязательны |
| Параллельные конфликты | Два субагента правят один файл | Разделяй ответственность |
| Сводка субагента обрезана | ASYNC DELEGATION BATCH COMPLETE — summary обрезается до ~2K символов | После получения сводки — прочитай полный файл из subagent-summary-*.txt через read_file |
| OK Gate завис | Пользователь не отвечает, пайплайн стоит | Сработает Timeout Gate (24ч) — сохрани состояние в memory и напомни |
| Мета-пакет не обновлён | Новый проект не добавлен в svarog-forge | После релиза — pip install -e . |
| README описывает то, чего нет 🆕 | README на GitHub перечисляет несуществующие файлы | Проверь содержимое репозитория после создания. Все описанные файлы должны быть залиты. |
| GitHub API rate limit (гонцы) | Гонец использует curl к api.github.com и получает 403 Rate Limit Exceeded |
Используй gh api вместо curl. gh залогинен — 5000 запросов/час. Детали в references/github-competitor-analysis.md |
| Security Audit пропущен 🆕 | Релиз вышел с личными данными/секретами | Security Audit — обязательная подфаза в Фазах 3, 4, 5. Не релизить без аудита. |
| Имена в паттернах сканера 🆕 | Публичный код содержит реальные имена в паттернах поиска | Используй generic-плейсхолдеры (OWNER_NAME). Реальные имена — в .forge-audit-config.json (в .gitignore). |
✅ Verification Checklist
- Pre-market анализ проведён (гонцы вернули отчёт с URL и цифрами)
- OK Gate пройден (пользователь сказал явное «да»)
- 🛡️ Security Audit: после сборки (7 шагов) — пройден
- Код написан, собран, запущен, протестирован
- README + лицензия + CI настроены
- 🛡️ Security Audit: перед релизом (5 шагов) — пройден
- Пакет опубликован (если Python)
- GitHub-репозиторий создан в svarogforge
- Релиз создан на GitHub (v0.1.0)
- Мета-пакет svarog-forge обновлён
- 🛡️ Security Audit: после релиза (5 шагов) — пройден
- Пайплайн закрыт — пользователь уведомлён
- Memory: сохранено имя проекта, версия, дата релиза