---
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): после создания отдела «проверь штаб» даёт по нему ✓.

Отчёт человеку — таблица ✓/✗ по шагам, строка, добавленная в карту отделов штаба, и что заполнить дальше: назначение и канон отдела.
