corp-new · git:20260929.b858fd2 · 2026-09-29 · sha256 b6cd692fcfe26dbd
corp-new git:20260929.b858fd2A
Immutable. This exact content never changes and is served at /api/v1/blob/b6cd692fcfe26dbd.
---
name: corp-new
description: Создаёт новый отдел штаба — папку с файлом правил и папкой скиллов, приватный репозиторий на GitHub и связь со штабом в правилах в обе стороны. Если штаба ещё нет, сначала ставит его из agent-starter. Применять по /corp-new, «создай отдел», «новый отдел», «заведи отдел <домен>».
---
# corp-new: новый отдел штаба
Штаб это главная папка работы с агентом: файл правил, `me.md`, карта отделов. Отдел это соседняя папка штаба со своим файлом правил и скиллами, например `corp-sales` или `corp-content`. Отдел знает свой штаб, штаб знает свои отделы: связь записана в правилах с обеих сторон.
Скилл идёт по шагам и отвечает таблицей ✓/✗. Правила отдела за человека он не пишет: ставит каркас с пустыми местами, их человек заполняет сам или в интервью (`interview-me`). Чужие файлы не трогает, незакоммиченную работу не выбрасывает.
Команды даны для macOS и Linux (zsh, bash). На Windows агент делает то же средствами PowerShell.
## 1. Найти штаб
Штаб узнаётся так же, как в скилле `hq` (шаг 1): папка с `me.md` или `stack/harness.md`. Где искать, по порядку:
```sh
for d in . .. ../hq ~/Documents/GitHub/hq ~/hq; do
{ [ -e "$d/me.md" ] || [ -e "$d/stack/harness.md" ]; } && (cd "$d" && pwd -P)
done | sort -u
```
- Нашёлся один — это штаб; дальше его путь `HQ`, папка репозиториев `ROOT` — его родитель.
- Нашлось несколько — спросить одной строкой, какой.
- Открыт отдел, и в его файле правил есть ссылка на штаб (`../<папка>`) — штаб берётся по ней.
- Не нашлось — шаг 2.
## 2. Штаба нет: поставить из agent-starter
Папка штаба по умолчанию — `~/Documents/GitHub/hq`, если есть `~/Documents/GitHub`; иначе спросить одной строкой, где держать репозитории. Путь только латиницей.
```sh
ROOT=~/Documents/GitHub; HQ="$ROOT/hq"
git clone https://github.com/serejaris/agent-starter.git "$HQ"
git -C "$HQ" remote rename origin upstream # обновления стартера — git pull upstream main
mkdir -p "$HQ/stack"
```
Дальше в папке штаба пройти скилл `hq` этого штаба (`$HQ/.agents/skills/hq`): он определит харнес, поставит главный файл правил и `me.md`. Пустые правила штаба заполняются по образцу из шага 5 скилла `hq`, словами человека. Штаб на GitHub — только если человек попросил: приватным репозиторием, как отдел в шаге 5.
Проверка: в `$HQ` есть `AGENTS.md` и `CLAUDE.md` (один из них симлинк на другой), `.agents/skills/hq`, `stack/harness.md`.
## 3. Имя отдела
Имя папки — `corp-<домен>` латиницей в нижнем регистре: `corp-sales`, `corp-legal`. Человек назвал отдел по-русски — предложить имя одной строкой и взять его ответ. Если домен уже есть у другого отдела штаба (карта отделов в правилах штаба) — спросить, новый ли это отдел, до любых правок.
```sh
SLUG=corp-<домен>; D="$ROOT/$SLUG"
test -d "$D" && echo "папка есть"
command -v gh >/dev/null && gh repo view "$(gh api user -q .login)/$SLUG" --json visibility,url 2>/dev/null
grep -n "$SLUG" "$HQ/AGENTS.md" "$HQ/CLAUDE.md" 2>/dev/null
```
- Папка есть — каркас не ставить: только связь (шаг 6) и проверка (шаг 7).
- Папки нет, а репозиторий на GitHub есть — `gh repo clone <владелец>/$SLUG "$D"`, дальше шаг 6.
## 4. Каркас отдела
```sh
mkdir -p "$D/.agents/skills" "$D/.claude"
ln -s AGENTS.md "$D/CLAUDE.md"
ln -s ../.agents/skills "$D/.claude/skills"
git -C "$D" init -b main
```
`$D/AGENTS.md` — ровно этот каркас, `<HQ>` — имя папки штаба:
~~~markdown
# <slug>
Это отдел штаба `../<HQ>`: там общие правила, карта отделов и `me.md`.
## Назначение
<одна-две строки: что хранит и делает этот отдел>
## Канон
- <путь/файл> — <что здесь живёт>.
## Границы
- Секреты, токены, пароли и платёжные данные не хранить.
- Не копировать содержимое отдела в другие папки; ставить ссылку на файл-владелец.
- Карту отделов не дублировать: она живёт в штабе.
## Проверка
```bash
git diff --check
```
~~~
`$D/README.md` — одна строка: `<slug> — <домен одной строкой>. Правила для агентов — в AGENTS.md.`
`.agents/skills/` остаётся пустой, пока у отдела не появятся свои скиллы.
## 5. Приватный репозиторий
Нужен `gh` с входом в аккаунт (`gh auth status`). Нет — пропустить шаг и сказать об этом в отчёте.
```sh
git -C "$D" add -A && git -C "$D" commit -m "chore: init $SLUG"
gh repo create "$SLUG" --private --source "$D" --remote origin --push
```
Репозиторий только приватный: в отделах рабочие данные человека.
## 6. Связь со штабом в правилах
- **Штаб → отдел.** В карту отделов файла правил штаба (или в `projects.md`, если карта вынесена туда) дописать отдел в том формате, который там уже есть: таблица — строкой таблицы, список — пунктом. Путь всегда `../<slug>`, домен — коротко: `- <название>: \`../<slug>\` — <домен>`. Если правила штаба сами говорят, какие отделы вписывать в карту, — следовать им.
- **Отдел → штаб.** Первая строка после заголовка `AGENTS.md` отдела: «Это отдел штаба `../<HQ>` …» (каркас из шага 4). У существующего отдела без неё — дописать её.
Коммит в штабе — только этой правки; push — если так велят правила человека.
## 7. Проверка и отчёт
```sh
[ "$(readlink "$D/CLAUDE.md")" = AGENTS.md ] && echo "✓ CLAUDE.md -> AGENTS.md"
[ "$(readlink "$D/.claude/skills")" = ../.agents/skills ] && echo "✓ .claude/skills -> ../.agents/skills"
grep -q "\.\./$(basename "$HQ")" "$D/AGENTS.md" && echo "✓ отдел ссылается на штаб"
grep -q "\.\./$SLUG\|\`$SLUG\`" "$HQ/AGENTS.md" "$HQ/CLAUDE.md" "$HQ/projects.md" 2>/dev/null && echo "✓ штаб ссылается на отдел"
gh repo view "$(gh api user -q .login)/$SLUG" --json visibility -q .visibility 2>/dev/null # PRIVATE
```
Связь в обе стороны проверяет и скилл `hq` (шаг 5): после создания отдела «проверь штаб» даёт по нему ✓.
Отчёт человеку — таблица ✓/✗ по шагам, строка, добавленная в карту отделов штаба, и что заполнить дальше: назначение и канон отдела.