From personal-corp-skills
Sets up a new project for AI-agent-driven management: generates OKR files, config blocks, and GitHub project + labels. Use when initializing a repo or connecting GitHub as a command center.
How this skill is triggered — by the user, by Claude, or both
Slash command
/personal-corp-skills:project-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Разовая настройка проекта под AI-агентское управление. Skill идёт через guided интервью, проверяет что уже существует, не перезаписывает чужое, создаёт только недостающее.
Разовая настройка проекта под AI-агентское управление. Skill идёт через guided интервью, проверяет что уже существует, не перезаписывает чужое, создаёт только недостающее.
Skill начинает с меню. Дождись явного выбора пользователя — никаких действий до этого.
Покажи пользователю:
Что настраиваем? Отметь нужное:
☐ 1. Локальные файлы — tasks.md · okr.md · decisions.md · AGENTS.md или CLAUDE.md (config block)
☐ 2. Настройка GitHub — Project + labels + список репо
«всё» = обе опции
Если пользователь выбрал «всё» или «1, 2» — запустить обе ветки по порядку (сначала 1, потом 2). Если выбрал только одну — пропустить вторую полностью на всех фазах.
Не действуй пока ответа нет. Это первое и единственное действие Phase 0.
Цель: до интервью узнать что existing, чтобы не задавать лишних вопросов и не overwrite'ить чужое.
# Базовая папка проекта (стандарт: 0_hq/, но может быть любой)
ls -la 0_hq/ 2>/dev/null || echo "0_hq нет"
# Канонические файлы
for f in tasks.md okr.md decisions.md; do
if [ -f 0_hq/$f ]; then echo "✓ 0_hq/$f"; else echo "— нет 0_hq/$f"; fi
done
# AGENTS.md / CLAUDE.md — для config block
# Используем тот что existing. Если оба есть — primary тот что не симлинк.
# Если ни одного — спросим в Phase 2 какой создать (по типу агента).
for f in AGENTS.md CLAUDE.md; do
if [ -L 0_hq/$f ]; then echo "↪ 0_hq/$f → $(readlink 0_hq/$f)"
elif [ -f 0_hq/$f ]; then echo "✓ 0_hq/$f ($(wc -l < 0_hq/$f) строк)"
else echo "— нет 0_hq/$f"
fi
done
# Если AGENTS.md или CLAUDE.md существует — есть ли уже config block?
grep -lA 5 "Agent Operations Config" 0_hq/AGENTS.md 0_hq/CLAUDE.md 2>/dev/null
# Если okr.md существует — какой период?
head -10 0_hq/okr.md 2>/dev/null
Записать в session: что уже existing, что отсутствует. На следующих фазах задавать вопросы только про missing.
# Какой github username?
gh api user --jq '.login'
# Существующие projects пользователя
gh project list --owner <username>
# Существующие репо
gh repo list <username> --limit 30 --json name,description
# Если знаем репо проекта — существующие labels
for repo in <repos>; do
gh label list -R $repo --limit 50 | grep -iE "retro|epic|backlog|^W[0-9]"
done
Записать: есть ли подходящий Project, какие labels уже созданы, какие репо в scope.
Правила:
Только если папки нет.
«В какой папке держать канонические файлы? По умолчанию
0_hq/.»
Только если ни AGENTS.md, ни CLAUDE.md нет, или ни в одном из них нет config block'а.
«Чем занимаешься? Тип бизнеса, solo или с командой?» «Какие продукты/услуги продаёшь? Цены, где они живут (лендинг, бот, и т.д.)»
Если ни один из файлов не существует, дополнительно спросить:
«Какой агент основной — Claude Code или Codex/другой? От этого зависит имя файла:
CLAUDE.mdдля Claude Code,AGENTS.mdдля универсального. Можно создать оба и связать симлинком — но обычно один.»
okr.md отсутствует или период устарел)Если файл есть и период current — пропустить, только перепривязать в config.
«На какой горизонт ставим цели? (Q2 = квартал / H2 = полугодие / 2026 = год)» «Сформулируй North Star одним предложением: к концу периода у тебя/нас будет ___».
Anti-pattern: если ответ начинается с «увеличить X на Y%» — это KR, не North Star. Уточни: «А что у тебя будет когда X вырастет на Y%? Это и есть North Star».
«Какие 1-3 крупных направления должны двигаться чтобы North Star стал реальностью?»
Спрашивать по одному. Per O ещё:
Anti-pattern: 4+ Objectives на квартал для founder-of-one. STOP, попросить сократить до топ-3.
Per O спросить 2-4 KR. Per KR:
«Как поймём что O двигается? (a) к дате X есть Y — binary, или (b) метрика Z достигла N — численное» «Где это будет measure'иться? Конкретный путь — файл, sales.db query, GitHub issue, dashboard».
Anti-pattern: KR без source-of-truth pointer. STOP, спросить «где будем мерить?». Без pointer'а KR превратится в воздух.
«Какие метрики хочешь мониторить как guard rails — не достигать, а держать в норме? Например "выручка/неделя ≥ $X" или "доля исходящих ≥ N в неделю". Это защита от Goodhart's law: KR можно загейминговать, guard rails ловят перекос.»
Можно пропустить если пользователь не готов.
«Когда ревьюим OKR? По умолчанию — в
weekly-retroPhase 1.5 (еженедельно прогресс) + monthly snapshot. Подходит?»
Если репо ещё не определены.
«Какие репо относятся к этому проекту? Возьми 5-7 ключевых для weekly operations, остальные подключим позже. Категоризировать: execution / growth / infrastructure.»
Для каждого репо спросить категорию (одна из трёх).
Если Project уже existing — спросить:
«Использовать
<Project N>(нашли в gh project list) или создать новый?»
Если нет:
«Название Project'а? Например "Personal Corp" или " ops".»
«Какие задачи идут в какой репо? Pattern → repo. Например: "bot, broadcast" → hsl-mozg, "lessons" → teach-vibecoding.»
Минимум 3 routing rule. Можно дополнять позже.
mkdir -p <project-folder>/retros/
# Stubs — НЕ overwrite existing
[ ! -f <project-folder>/tasks.md ] && touch <project-folder>/tasks.md
[ ! -f <project-folder>/decisions.md ] && touch <project-folder>/decisions.md
# AGENTS.md / CLAUDE.md — файл инструкций для агентов.
# Логика: используем тот что existing. Если ни одного — создаём по выбору пользователя из 1.2.
# Симлинк второго на первый — опционально, если пользователь явно попросил.
AGENT_FILE="<выбран в 1.2 или existing из Phase 1>" # AGENTS.md либо CLAUDE.md
[ ! -f <project-folder>/$AGENT_FILE ] && touch <project-folder>/$AGENT_FILE
Файлы заполнить минимальными templates (не фабриковать данные).
# Задачи
Обновлено: <date>
Протухает после: <date + 7 дней>
## Сейчас (W{NN})
| Приоритет | Работа | Почему | Источник |
|---:|---|---|---|
| 1 | ... | ... | ... |
## Решения недели
(заполняется в weekly-planning)
## Не сейчас
- ...
# OKR
Обновлено: <date>
Период: <Q2 2026 / H2 2026 / etc>
## North Star
<aspirational sentence из 1.3.a>
## Objectives
### O1: <название из 1.3.b>
**Why:** <motivation>
**Key Results:**
- **KR1.1** — <формулировка из 1.3.c> · source: <path/query/issue>
- **KR1.2** — <...> · source: <...>
### O2: <...>
## Guard rails
(из 1.3.d, если есть)
- <metric>: floor ≥ X · source: <...>
- <metric>: ceiling ≤ Y · source: <...>
## Cadence
Review: <из 1.3.e>
---
## История
<append-only когда период закроется>
Anti-pattern: создавать okr.md без user input по 1.4. Если пользователь скипнул — НЕ генерировать пустой файл с placeholder'ами. Показать что генерация пропущена.
Записываем в файл из переменной $AGENT_FILE (AGENTS.md или CLAUDE.md). Если файл существует с контентом — ADD блок в конец, НЕ overwrite.
## Agent Operations Config
### Канонические файлы
canonical:
tasks: <path>/tasks.md
okr: <path>/okr.md
decisions: <path>/decisions.md
### Weekly cadence
weekly_cadence: <день недели — главный delivery>
retro_log_path: <path>/retros/
### Repos (если выбрана опция 2)
repos:
- owner/repo-1 # execution — что делает
- owner/repo-2 # growth — что делает
- owner/repo-3 # infrastructure — что делает
### GitHub Project (если выбрана опция 2)
project_id: <N>
owner: <github-username>
### Task routing (если собирали в 2.3)
routing:
- pattern: "bot, broadcast"
repo: owner/bot-repo
- pattern: "content, lessons"
repo: owner/content-repo
gh project create --owner <owner> --title "<name>"
Затем добавить custom fields через UI или API:
for repo in <repos>; do
gh label create "retro:W00" -R $repo --color "D4C5F9" \
--description "Шаблон лейбла недельного ретро"
gh label create "epic" -R $repo --color "5319e7" \
--description "Длинный трек, не недельная задача"
gh label create "backlog" -R $repo --color "ededed" \
--description "Отложено вне retro-цикла"
done
Текущая неделя ретро (retro:W{NN}) создаётся отдельно при первом ретро через weekly-retro skill.
Если опция 1 не выбрана — создать минимальный agent file (AGENTS.md или CLAUDE.md по типу agents) только с repos + project + routing. Если опция 1 выбрана — этот блок уже создан в 3.1.d, просто заполнить repos / project / routing.
# Канонические файлы существуют
ls <path>/tasks.md <path>/okr.md <path>/decisions.md
ls -l <path>/AGENTS.md <path>/CLAUDE.md 2>/dev/null # один или оба, симлинк показывает →
# Config block (в любом из двух)
grep -lA 5 "Agent Operations Config" <path>/AGENTS.md <path>/CLAUDE.md 2>/dev/null
# OKR sanity-check
head -25 <path>/okr.md
Показать пользователю результаты. Если что-то отсутствует — сообщить и предложить дозаполнить.
# Project существует
gh project list --owner <owner> | grep "<project-name>"
# Labels в каждом репо
for repo in <repos>; do
echo "=== $repo ==="
gh label list -R $repo | grep -E "retro|epic|backlog"
done
После init работают:
manager — синк session work в GitHub issues (требует опцию 2)weekly-retro — структурированное ретро (требует опцию 1, опционально 2)weekly-planning — план недели (требует опцию 1)pm-metrics — ревью метрик с OKR alignment check Step 7 валидирует то что сгенерировано в 1.4Каждый skill читает config block из CLAUDE.md — реconfigure не нужен.
«У меня 20+ репо» — выбери 5-7 которые матерят для weekly operations. Остальные подключим позже отдельным запуском skill'а.
«Структура проекта messy» — нормально. Init создаёт чистый layer сверху, реорганизовывать существующее не нужно.
«У меня уже есть OKR в Google Doc» — в опции 1.4 выбери «уже есть, импортирую» — skill попросит paste содержимое и сохранит в okr.md с минимальной нормализацией.
«Можно запустить skill второй раз чтобы добавить только OKR?» — да. Phase 0 меню → выбрать только опцию 1 → Phase 1 verify покажет что existing → Phase 2 спросит только про OKR (остальное skip) → Phase 3 создаст только okr.md.
weekly-retro — заполняет outcomes scorecard на базе KR из okr.mdweekly-planning — превращает KR в weekly outcomespm-metrics — Step 7 валидирует OKR alignment, Step 2 декомпозирует North Star → L1 → L2manager — синкает session work в GitHub issues, использует repos / labels из confignpx claudepluginhub serejaris/personal-corp-skills --plugin personal-corp-skillsOrchestrates autonomous end-to-end project building from a description via CodeClaw pipeline: ideas, tasks, releases, implementation, docs, and social announcements.
Bidirectional sync between BMAD planning markdown files (epics, stories, sprints) and GitHub Projects v2. Handles onboarding, push, pull, and status checks with explicit user approval.
This skill should be used when the user asks to "start a new project", "greenfield project", "tech debt campaign", "incident response", "feature development", "which preset", "initialize metis", "set up project", or needs guidance on project setup, choosing presets, and applying patterns for different work types.