| name | Полный запуск CyberSEO |
| description | Общий навык CyberSEO для развёртывания WordPress, развёртывания CyberSEO, подготовки профиля, промптов, поиска тем и финального импорта. Работает только через один файл cyberseo.project.yml. |
Полный запуск CyberSEO
Это общий входной навык.
Он не должен делать всё одним большим действием. Его задача:
- найти или создать
cyberseo.project.yml;
- хранить служебные данные в блоке
state внутри cyberseo.project.yml;
- понять, что нужно сейчас: развёртывание или темы;
- передать работу нужному внутреннему навыку;
- не спрашивать повторно то, что уже есть в файле;
- после каждого шага обновить файл и коротко сказать, что готово.
Что читать
cyberseo.project.yml в текущем проекте клиента.
- Если
cyberseo.project.yml нет, создать его по шаблону assets/cyberseo.project.yml.
- Для развёртывания читать Развёртывание CyberSEO.
- Для тем читать Поиск и импорт тем CyberSEO.
Отдельный .cyberseo.state.yml не создавать. Если такой файл уже есть от старого запуска, перенести нужные значения в cyberseo.project.yml -> state и больше его не использовать.
Как обновлять cyberseo.project.yml
В файле должны сохраняться комментарии-подсказки. Нельзя читать YAML в объект и затем записывать его обратно обычным YAML-сохранением, потому что так стираются комментарии.
Правило:
- менять только нужные значения в существующем файле;
- использовать точечную правку строк или
apply_patch;
- не пересобирать весь
cyberseo.project.yml с нуля, если файл уже существует;
- перед большой правкой сделать копию файла;
- после правки проверить, что в файле остались комментарии
#;
- если комментарии уже были стёрты, восстановить файл из
assets/cyberseo.project.yml и перенести туда текущие значения.
Как выбрать шаг
Если пользователь просит создать файл проекта — только создать cyberseo.project.yml и остановиться.
Если пользователь просит заполнить профиль сайта до развёртывания — обновить поля site.*, topics.main_topic, topics.language и prompts.* в cyberseo.project.yml, ничего не разворачивать.
Если пользователь просит развернуть WordPress — поставить WordPress только из стека, который лежит внутри этого навыка: assets/wordpress/cyberseo-publisher-stack. Это специализированная сборка под CyberSEO, а не общий WordPress-стек. WordPress-доступы записать в state.wordpress внутри cyberseo.project.yml.
При запуске WordPress-стека передать в setup.sh значения из cyberseo.project.yml:
site.site_title -> COMANDOS_WP_SITE_TITLE;
site.site_description -> COMANDOS_WP_SITE_DESCRIPTION;
site.blog_title -> COMANDOS_WP_BLOG_TITLE;
site.blog_description -> COMANDOS_WP_BLOG_DESCRIPTION;
site.about_blog -> COMANDOS_WP_ABOUT_BLOG.
Установщик сам запишет стандартные опции WordPress и отдельные поля темы Comandos AI Blog: blog_title, blog_description, about_blog. Не оставлять эти поля на ручную правку в кастомайзере.
При развёртывании WordPress установщик также должен закрыть архив администратора от индексации в Yoast SEO. Это та галочка в профиле пользователя: “Не разрешайте поисковым системам отображать архивы этого автора в результатах поиска”. В базе это user meta wpseo_noindex_author = on.
Не ставить WordPress вручную с официального сайта, не использовать wp-next-stack и не использовать общий stacks/wp для CyberSEO. Источник WordPress-стека:
cyberseo-full/assets/wordpress/cyberseo-publisher-stack
При установке навыка эта папка копируется вместе с cyberseo-full. Для развёртывания скопировать папку assets/wordpress/cyberseo-publisher-stack на сервер и запускать её setup.sh.
Если пользователь просит развернуть CyberSEO — использовать cyberseo-deploy.
Панель CyberSEO не должна показывать заранее вписанные логин и пароль.
Созданные логин, пароль, адрес панели, адрес API и админ-токен записывать в cyberseo.project.yml -> state.cyberseo.
Тот же ключ из license.cyberseo_key должен быть сразу подключён через локальный API CyberSEO, чтобы после входа в панель лицензия уже была активна.
Если пользователь просит найти темы, собрать план публикаций, сделать 20-50 тем, убрать дубли или импортировать темы — использовать cyberseo-topic-research.
Если неясно, сначала посмотреть cyberseo.project.yml:
- если нет
cyberseo.project.yml — создать шаблон и остановиться;
- если профиль сайта пустой, а WordPress ещё не развёрнут — предложить сначала заполнить SEO/GEO-профиль сайта;
- если WordPress ещё не развёрнут — предложить команду развёртывания WordPress;
- если CyberSEO ещё не развёрнут — предложить команду развёртывания CyberSEO;
- если есть адрес API и токен в
state.cyberseo — можно идти к темам;
- если человек прямо сказал “только темы”, не запускать развёртывание.
Правила
- Все пользовательские секреты брать только из
cyberseo.project.yml или спрашивать у пользователя.
- Технические секреты, созданные агентом, хранить только в
cyberseo.project.yml -> state.
- Сразу добавить
cyberseo.project.yml в .gitignore, выставить права 0600 и никогда не печатать его секреты в чат, логи или Git.
- Не создавать второй YAML-файл для состояния.
- Полные ключи и токены не печатать в ответах и логах.
- Если обязательного поля нет, спросить коротко.
- Если поле полезное, но не обязательное, спросить один раз.
- Если пользователь сказал “без этого”, оставить поле пустым или записать понятную отметку и больше не спрашивать.
- Не менять сервер и живой CyberSEO без понятного подтверждения перед опасным действием.
- Не импортировать темы без предварительного списка для проверки, если пользователь не сказал “импортируй сразу”.
- Не выдумывать адреса API, токены, оферы и ID.
Общий файл
cyberseo.project.yml хранится у клиента локально. Его нельзя коммитить в открытый репозиторий с реальными ключами.
В нём должны жить:
- лицензия;
- данные сервера и доменов;
- ключи KIE, Perplexity, Firecrawl и Telegram;
- страна, город, язык статей, основная тема и число тем;
- промпт писателя;
- промпт художника;
- ссылка на референс изображения.
- служебный блок
state с созданными доступами и статусами.
Выход
В конце каждого запуска дать короткий отчёт:
- что сделано;
- какие данные сохранены в
cyberseo.project.yml;
- какие служебные данные сохранены в блоке
state;
- что не заполнено;
- какой один следующий шаг имеет смысл.