skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
page-craft.4partners.io102 installs

4cms-articles

Смотрит уже опубликованные на витрине 4cms статьи/лендинги (article-html) — чтобы перед созданием новой страницы проверить, нет ли похожей (анти-каннибализация контента), посмотреть последние статьи, узнать рубрики/теги/мету конкретной статьи. Используй, когда пользователь говорит «есть ли уже статья про…», «не дублируем ли контент», «покажи статьи на сайте», «что за лендинг с таким id», «какие статьи в рубрике», перед написанием новой статьи/лендинга. Это чтение существующих статей 4cms (не создание — создаёт страницы PageCraft). Вызывай через тул `Skill(4cms-articles)`, не через `Read .../SKILL.md`.

How do I install this agent skill?

npx skills add https://page-craft.4partners.io --skill 4cms-articles
view source ↗

Is this agent skill safe to install?

No partner audit is available yet. Read the source before installing.

What does this agent skill do?

⚡ Этот скилл — для вызова через тул Skill(4cms-articles), не через Read .../SKILL.md.

4cms Articles

Читает уже опубликованные на витрине статьи/лендинги (article-html). Главный смысл — анти-каннибализация: перед тем как собирать новый лендинг, проверить, нет ли на сайте похожего, чтобы не плодить дубли и не растаскивать поисковый трафик.

Граница доменов. Это 4cms — «что уже опубликовано на витрине». Само создание/сборка/публикация лендинга — это PageCraft (pagecraft-pages), он льёт страницы как article-html. Здесь мы только смотрим существующее.

Предусловие

  • Для просмотра витрины (articles.js) — FOURCMS_API_KEY с доступом к article-методам (Skill(4cms-env)).
  • Для анти-каннибализации (find-similar.js) — PAGECRAFT_API_KEY (Skill(pagecraft-env)).

Установка зависимостей (один раз): npm install --prefix .claude/skills/4cms-articles

Если метод вернул Доступ запрещён (код 100002) — у ключа нет прав на статьи или сработал троттлинг API при частых запросах. Скрипт сам делает один повтор с паузой; при устойчивом отказе — проверь права ключа.

Инструменты

Два скрипта под разные задачи:

1. Анти-каннибализация — find-similar.js (основной путь)

node .claude/skills/4cms-articles/scripts/find-similar.js "<тема>" [--limit 20]

Ищет похожие страницы через индексированный полнотекстовый поиск PageCraft — один запрос по всему корпусу, масштабируется на десятки тысяч страниц. Нужен PAGECRAFT_API_KEY (ключ PageCraft, не 4cms — настраивается скиллом pagecraft-env).

Почему PageCraft, а не 4cms: в 4cms нет серверного поиска по статьям, поэтому скан списка (см. articles.js --find) не масштабируется. Страницы этой фабрики создаются в PageCraft и индексируются там. Это временное решение за абстракцией: когда в API 4cms появится нативный поиск статей, внутри find-similar.js подменяется одна функция (searchSimilar) — вывод и вызовы не меняются, скилл не ломается. В выводе есть поле backend — видно, какой источник ответил.

2. Просмотр витрины — articles.js

node .claude/skills/4cms-articles/scripts/articles.js [команда] [флаги]
КомандаЧто делает
(без флагов)Последние статьи витрины (страница 1) + pager
--get <id>Одна статья: мета, рубрики, теги, размеры контента (--content — html/styles/scripts/context)
--find "<текст>"Локальный поиск по витрине постранично — только для малых витрин; ограничен --max-pages, ставит truncated
--variationsДоступные вариации сайта

Общие флаги: --variation <code> (дефолт default), --page N, --per-page N, --order published|id, --sort ASC|DESC, --active true|false|all, --max-pages N.

⚠️ articles.js --find сканирует выкачанные страницы (в 4cms нет серверного поиска) и ограничен --max-pages. При truncated: true «не нашёл» ≠ «дубля нет». Для надёжной проверки используй find-similar.js.

Анти-каннибализация — как пользоваться

Перед созданием новой статьи/лендинга:

  1. Прогони find-similar.js по теме (бренд + рубрика + суть): find-similar.js "кроссовки nike".
  2. Есть совпадения (особенно с высоким score) → покажи пользователю найденные страницы (name, slug, external_id = id на витрине) и спроси: обновляем существующую или делаем новую? Не создавай дубль молча.
  3. Нет совпадений → тема свободна, можно собирать новую (через PageCraft, pagecraft-pages).

Полная картина = PageCraft (что в работе и опубликовано, через find-similar.js) + при необходимости витрина (articles.js для конкретной статьи/рубрики). external_id в выдаче связывает страницу PageCraft со статьёй 4cms.

Формат

  • list / find: { pager?, count, articles: [{ id, name, slug, publish_date, is_active, is_published, rubric_ids, tags }] }. Полный URL лендинга на витрине — /a-{slug}.
  • get: добавляет meta_title, meta_description, preview_text, content_sizes и (с --content) сам html/styles/scripts/context.
  • rubric_ids связывают статью с рубриками каталога — пригодится, чтобы понять, к какой категории относится существующий контент.

Если скрипт не отдаёт ожидаемое — проверь живой API

  • articles.js (витрина 4cms): Swagger https://api.4partners.io/ → Authorize (X-Auth-Token) → article-html/{variation}/list → Try it out. HTTP всегда 200, статус в теле; 100002 чаще = рейт-лимит (~600/min).
  • find-similar.js (поиск PageCraft): Swagger PageCraft <PAGECRAFT_API_URL>/api/v1/docs (по умолчанию https://page-craft.4partners.io/api/v1/docs) → метод GET /api/v1/search/pages (авторизация Authorization: Bearer <PAGECRAFT_API_KEY>).

Что не делает

  • Не создаёт, не редактирует и не публикует статьи — это PageCraft (pagecraft-pages).
  • Не резолвит бренды/рубрики/товары по имени — это 4cms-resolve.
  • Не настраивает .env — это 4cms-env.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/page-craft.4partners.io/4cms-articles">View 4cms-articles on skillZs</a>