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

pagecraft-folders

Управление папками страниц в PageCraft через публичный V1 API — список/получение/создание/переименование/перемещение/удаление папок, построение иерархий и массовая реорганизация. Используй, когда пользователь говорит «создай папку», «переименуй папку», «перемести папку», «удали папку», «построй структуру папок», «покажи дерево папок».

How do I install this agent skill?

npx skills add https://page-craft.4partners.io --skill pagecraft-folders
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?

PageCraft Folders

Этот skill учит агента управлять папками страниц в PageCraft через V1 REST API: создавать иерархию, переименовывать, перемещать между папками, удалять (каскадно).

Когда применять

  • Пользователь просит организовать страницы в папки — построить структуру/иерархию.
  • Нужно переименовать или переместить папку.
  • Нужно удалить папку — отдельную или вместе со всем содержимым.
  • Нужен срез существующей иерархии (плоский список или дерево).

Жёсткие правила

  1. Перед folders-delete.mjs без --yes ВСЕГДА вызывай folders-get.mjs <id> — если total_pages_count + total_subfolders_count > 0, скрипт сам остановится и выведет counts. Это защита от случайного каскадного удаления.
  2. Перемещение СТРАНИЦЫ между папками — НЕ в этом скилле. Используй pagecraft-pages/scripts/pages-update.mjs с { "folder_id": N | null } в payload. Этот скилл двигает только сами папки.
  3. Контракт PUT — точный: «поле не передано» = не менять. «parent_id: null» = переместить папку в корень. Не путай с отсутствием поля.
  4. Cross-site move запрещён: parent_id должен указывать на папку того же сайта, иначе 422.
  5. Циклы запрещены: нельзя сделать папку потомком самой себя (прямо или транзитивно), иначе 422.

Окружение

  • PAGECRAFT_API_KEY — обязательная переменная: API-ключ pb_xxxx... (UI PageCraft → API keys).
  • PAGECRAFT_API_URL — опциональная: базовый host, по умолчанию https://page-craft.4partners.io (префикс /api/v1 добавляется автоматически). Legacy-имя PAGE_CRAFT_API (host с /api/v1) ещё поддерживается как fallback.

Скрипты

КомандаEndpointКогда вызывать
node scripts/folders-list.mjs <site_id> [--as-tree]GET /foldersСнять срез иерархии. --as-tree собирает children.
node scripts/folders-get.mjs <id>GET /folders/{id}Перед folders-delete.mjs — узнать counts.
node scripts/folders-create.mjs <payload.json>POST /foldersСоздать одну папку.
node scripts/folders-update.mjs <id> <payload.json>PUT /folders/{id}Переименовать и/или переместить.
node scripts/folders-delete.mjs <id> [--yes]DELETE /folders/{id}Удалить. Непустая папка — только с --yes.

Формы payload-ов

folders-create.mjs

{ "site_id": 3, "name": "Лендинги", "parent_id": null }
ПолеТипОбязательноеЗаметка
site_idinteger✓ID сайта (см. sites-list.mjs в pagecraft-pages)
namestring✓Название папки
parent_idinteger/null—ID родителя или null для корневой

folders-update.mjs

Оба поля опциональны.

{ "name": "Новое название" }
{ "parent_id": 5 }
{ "parent_id": null }
ПолеЧто значит
name отсутствуетне переименовывать
name: "X"переименовать на X (пустая строка → 422)
parent_id отсутствуетне перемещать
parent_id: nullпереместить в корень
parent_id: 5сделать ребёнком папки 5

Workflow

Построить иерархию «Каталог → Женское / Мужское»

# 1. Создать корневую
echo '{"site_id":3,"name":"Каталог"}' > /tmp/catalog.json
ROOT=$(node scripts/folders-create.mjs /tmp/catalog.json | jq -r '.folder.id')

# 2. Создать детей
echo "{\"site_id\":3,\"name\":\"Женское\",\"parent_id\":$ROOT}" > /tmp/women.json
node scripts/folders-create.mjs /tmp/women.json
echo "{\"site_id\":3,\"name\":\"Мужское\",\"parent_id\":$ROOT}" > /tmp/men.json
node scripts/folders-create.mjs /tmp/men.json

# 3. Проверить
node scripts/folders-list.mjs 3 --as-tree

Безопасно удалить папку

# 1. Узнать counts (ответ содержит total_pages_count/total_subfolders_count — рекурсивные totals)
node scripts/folders-get.mjs 12

# 2a. Пусто → DELETE проходит сразу
node scripts/folders-delete.mjs 12

# 2b. Не пусто — скрипт откажет, покажет РЕКУРСИВНЫЕ totals (реальный объём удаления):
node scripts/folders-delete.mjs 12
# stderr: { "error": "Папка не пустая...", "will_delete": { "pages": 142, "subfolders": 17 } }

# 3. Подтвердить осознанно
node scripts/folders-delete.mjs 12 --yes
# → { "success": true, "deleted_pages": 142, "deleted_subfolders": 17 }

Перенести папку в корень

echo '{"parent_id": null}' > /tmp/to-root.json
node scripts/folders-update.mjs 12 /tmp/to-root.json

Композиция с другими скиллами

  • pagecraft-pages — после создания структуры папок передавай folder_id в payload создания/обновления страниц.
  • pagecraft-provider, pagecraft-s3 — независимы от этого скилла.

Коды ошибок

КодПричина
400Нет site_id в GET /folders, невалидный payload в POST
401Нет / неверный PAGECRAFT_API_KEY
404Папка, сайт или родительская папка не принадлежит владельцу ключа
422Пустое имя, цикл в иерархии, cross-site parent

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/pagecraft-folders">View pagecraft-folders on skillZs</a>