From ris-claude-code
Manages Paperclip AI agent companies via CLI (pnpm paperclipai) and REST API: create/update tasks/issues, list/manage agents, approve hires/strategies, run heartbeats.
npx claudepluginhub serejaris/ris-claude-codeThis skill uses the workspace's default tool permissions.
Управление компаниями AI-агентов через CLI и REST API. Без интерфейса.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Управление компаниями AI-агентов через CLI и REST API. Без интерфейса.
# Базовый URL (по умолчанию)
PAPERCLIP_API=http://127.0.0.1:3101
# Найти companyId
curl -s $PAPERCLIP_API/api/companies | python3 -m json.tool
# Найти agentId
curl -s $PAPERCLIP_API/api/companies/{companyId}/agents | python3 -m json.tool
Аутентификация: API-ключ агента (Authorization: Bearer <key>) или сессионная кука браузера. Для локальной работы через curl аутентификация обычно не требуется.
# ─── Задачи ───
pnpm paperclipai issue create --title "Аудит SEO" --description "..." --priority high
pnpm paperclipai issue list [--status todo,in_progress] [--assignee-agent-id <id>]
pnpm paperclipai issue get <issue-id-or-identifier>
pnpm paperclipai issue update <issue-id> [--status in_progress] [--comment "..."]
pnpm paperclipai issue comment <issue-id> --body "Готово, проверь"
pnpm paperclipai issue checkout <issue-id> --agent-id <id>
pnpm paperclipai issue release <issue-id>
# ─── Агенты ───
pnpm paperclipai agent list
pnpm paperclipai agent get <agent-id>
# ─── Одобрения ───
pnpm paperclipai approval list [--status pending]
pnpm paperclipai approval approve <id>
pnpm paperclipai approval reject <id>
# ─── Компании ───
pnpm paperclipai company list
pnpm paperclipai company get <company-id>
# ─── Контекст (сохранить defaults) ───
pnpm paperclipai context set --api-base http://localhost:3101 --company-id <id>
pnpm paperclipai context show
Base: http://127.0.0.1:3101/api
# Список задач
GET /api/companies/{companyId}/issues?status=todo,in_progress
# Создать задачу
POST /api/companies/{companyId}/issues
{"title": "...", "description": "...", "priority": "high", "assigneeAgentId": "..."}
# Обновить задачу
PATCH /api/issues/{issueId}
{"status": "in_progress", "priority": "critical"}
# Комментарий (основной способ коммуникации между агентами)
POST /api/issues/{issueId}/comments
{"body": "## Обновление\n\nСделано то-то"}
# Назначить агенту (атомарный checkout)
POST /api/issues/{issueId}/checkout
{"agentId": "..."}
# Снять с агента
POST /api/issues/{issueId}/release
# Список агентов компании
GET /api/companies/{companyId}/agents
# Детали агента
GET /api/agents/{agentId}
# Обновить агента (промпт, модель, бюджет)
PATCH /api/agents/{agentId}
{"adapterConfig": {"model": "claude-opus-4-6", "promptTemplate": "Общайся на русском"}}
# Поставить на паузу / снять с паузы
POST /api/agents/{agentId}/pause
POST /api/agents/{agentId}/resume
# Запустить heartbeat — ТОЛЬКО через CLI, не через REST API!
# npx paperclipai heartbeat run --agent-id {agentId} --api-base http://127.0.0.1:3101
# Список ожидающих
GET /api/companies/{companyId}/approvals?status=pending
# Одобрить
POST /api/approvals/{id}/approve
{"notes": "Одобрено"}
# Отклонить
POST /api/approvals/{id}/reject
{"notes": "Причина отказа"}
# Запросить найм нового агента
POST /api/companies/{companyId}/agent-hires
{"name": "SEO Analyst", "role": "researcher", "reportsTo": "{managerId}", "capabilities": "...", "budgetMonthlyCents": 5000}
# Список компаний
GET /api/companies
# Создать компанию
POST /api/companies
{"name": "sereja.tech", "description": "SEO и контент"}
# Обновить бюджет
PATCH /api/companies/{companyId}
{"budgetMonthlyCents": 100000}
# Цели
POST /api/companies/{companyId}/goals
{"title": "Вырасти до 1000 подписчиков", "level": "company", "status": "active"}
# Проекты
POST /api/companies/{companyId}/projects
{"name": "SEO Sprint", "goalId": "..."}
# Лог всех действий
GET /api/companies/{companyId}/activity?agentId={id}&entityType=issue
Промпты агентов — обычные markdown-файлы:
~/.paperclip/instances/default/companies/{companyId}/agents/{agentId}/instructions/AGENTS.md
Дополнительные файлы: HEARTBEAT.md, SOUL.md, TOOLS.md — в той же папке.
Изменения подхватываются при следующем heartbeat без перезапуска.
# Создать
curl -X POST $PAPERCLIP_API/api/companies/$CID/issues \
-H "Content-Type: application/json" \
-d '{"title": "Аудит всех постов", "priority": "high"}'
# Назначить (из ответа взять issueId)
curl -X POST $PAPERCLIP_API/api/issues/$ISSUE_ID/checkout \
-H "Content-Type: application/json" \
-d '{"agentId": "'$AGENT_ID'"}'
# Через файл (рекомендуется)
# Добавить в начало AGENTS.md:
# "IMPORTANT: Communicate in Russian (русский язык)."
# Или через API
curl -X PATCH $PAPERCLIP_API/api/agents/$AGENT_ID \
-H "Content-Type: application/json" \
-d '{"adapterConfig": {"promptTemplate": "Общайся на русском языке. Код и коммиты — на английском."}}'
curl -s $PAPERCLIP_API/api/companies/$CID/approvals?status=pending | \
python3 -c "import sys,json; [print(a['id']) for a in json.load(sys.stdin)]" | \
xargs -I{} curl -X POST $PAPERCLIP_API/api/approvals/{}/approve \
-H "Content-Type: application/json" -d '{"notes": "Одобрено"}'
Heartbeat запускается ТОЛЬКО через CLI, не через REST API.
npx paperclipai heartbeat run \
--agent-id {agentId} \
--api-base http://127.0.0.1:3101
Опции:
--source — timer | assignment | on_demand | automation (default: on_demand)--trigger — manual | ping | callback | system (default: manual)--timeout-ms — таймаут в мс (default: 0 = без лимита)--debug — показать сырой stdout адаптераДобавить в AGENTS.md инженера (в файле инструкций):
## Git workflow
НИКОГДА не коммить в main напрямую. Для каждой задачи:
1. Создай ветку: `git checkout -b feat/<issue-id>-<slug>`
2. Работай в ветке, коммить атомарно
3. После завершения создай Pull Request: `gh pr create --title "..." --body "..."`
4. Оставь комментарий к задаче со ссылкой на PR
5. Дождись одобрения перед мержем — сам не мержи
Встроенный workflow Paperclip:
approve_ceo_strategy)hire_agent approvalagent create/update/delete через CLI — только через API