$npx -y skills add TserenTserenov/FMT-exocortex-template --skill pack-creatorGuide a PACK-X author through the SPF fill cycle 01-11. Calls R28 Diagnostician to select mode (assembly/hybrid/full SPF) and leads through phases. Protects the read-only upstream invariant via PreToolUse hook.
| 1 | # /pack-creator — сопровождение автора PACK-X по SPF-циклу |
| 2 | |
| 3 | > ⚡ **Скилл-проводник, не автор.** Знание оригинирует автор Pack. Скилл удерживает |
| 4 | > процесс (SPF/process 01-11), защищает инвариант **read-only upstream FPF/SPF** |
| 5 | > и подстраивает глубину под cp.iwe автора. |
| 6 | |
| 7 | ## Контракт скилла |
| 8 | |
| 9 | - **Вход:** автор намерен создать или продолжить наполнение PACK-X (после `/pack-new`). |
| 10 | - **Выход:** PACK-X с заполненными разделами 01-11 + state-файл `.iwe-runtime/state/spf/{pack_id_slug}.yaml` (локальный, вне Pack — WP-474 Ф3). |
| 11 | - **Время:** N сессий по 30-90 мин, чекпоинты после каждой фазы. |
| 12 | - **Не делает:** не пишет в `SPF/` и `FPF/` (блокируется hook'ом), не выполняет cross-pack consistency аудит (это R24 Аудитор), не декомпозирует деятельность (это R29 Артефактор). |
| 13 | |
| 14 | ## Когда вызывается |
| 15 | |
| 16 | **Триггер-фразы:** «Создатель паков, …», «Pack Creator, …», slash `/pack-creator`. |
| 17 | |
| 18 | **Сценарии (DP.SC.048 §5):** |
| 19 | |
| 20 | - Автор сделал `/pack-new`, скаффолд готов, нужно наполнить 02-11. |
| 21 | - Автор продолжает работу над PACK-X через несколько сессий — скилл подхватывает |
| 22 | с `spf_checkpoint` из state-файла. |
| 23 | - Автор не уверен, какой режим оригинальности выбрать — скилл вызывает R28 Диагност. |
| 24 | |
| 25 | ## Шаг 0 — диагностика автора (R28) |
| 26 | |
| 27 | Перед началом работы — определить **cp.iwe** автора (компетенция «работа с |
| 28 | формализациями»). Это задаёт режим: |
| 29 | |
| 30 | | cp.iwe | Режим | Что делает автор | Что делает скилл | |
| 31 | |--------|------------|--------------------------------------------------------------------|----------------------------------------| |
| 32 | | ≤ 2 | assembly | Выбирает distinction'ы из чек-листа шаблонов соседних паков | Подаёт шаблоны, объясняет суть | |
| 33 | | = 3 | hybrid | Модифицирует шаблоны под свой домен | Подаёт шаблоны + вопросы на адаптацию | |
| 34 | | ≥ 4 | full SPF | Оригинирует distinction'ы, методы, формализации | Консультирует по форме (frontmatter, naming) | |
| 35 | |
| 36 | **Если cp.iwe недоступен** (новый пилот, нет данных в Neon) → default **assembly**. |
| 37 | Не запускать `/diagnose` принудительно — спросить автора напрямую: «Какой у тебя |
| 38 | опыт с формализациями: впервые / есть / уверенно работаю?» и смапить ответ. |
| 39 | |
| 40 | ## Шаг 1 — scaffold через `/pack-new` |
| 41 | |
| 42 | Если каталог `PACK-X/` не существует: |
| 43 | |
| 44 | ``` |
| 45 | Вызвать Skill: /pack-new |
| 46 | ``` |
| 47 | |
| 48 | Передать имя домена (существительное, не тема и не инструмент — см. CLAUDE.md §1). |
| 49 | `/pack-new` создаст структуру по `SPF/pack-template/` (разделы 01-11 пустыми |
| 50 | скелетами) и склонирует FPF/SPF при необходимости. После — продолжать с Шага 2. |
| 51 | |
| 52 | ## Шаг 2 — фазы SPF/process 02-11 |
| 53 | |
| 54 | Последовательность процесса — `SPF/process/01-domain-selection.md` … `11-review-and-evolution-cycle.md`. |
| 55 | Скилл ведёт автора по фазам **с записью прогресса в state-файл** (Шаг 7). |
| 56 | |
| 57 | ### Глубина оригинальности по режиму |
| 58 | |
| 59 | - **assembly (cp.iwe ≤ 2)** — источник кандидатов = домен, не соседние Pack'и (WP-474 Ф6, разрыв #2: копирование содержания соседей давало «Pack в стиле IWE», не заземлённый в реальной практике — нарушение D11): |
| 60 | 1. **Кандидаты различений** скилл извлекает из SoTA-источников самого Pack'а (`06-sota/*.md`, собраны Шагом 1.5 pack-new): детерминированный парсинг строк вида `distinction: X vs Y` — строка ищется в ЛЮБОМ месте sota-sheet-файла (начало строки `distinction:`, разделитель ` vs `), не только рядом с Claims. Найденные кандидаты подаются автору как чек-лист — автор выбирает применимые (механика чек-листа сохранена, она и делает режим посильным для cp.iwe ≤ 2; сменился только материал). |
| 61 | 2. **LLM-fallback:** если маркированных строк в SoTA-sheet нет — скилл предлагает переформулировки claims в форму «X ≠ Y», каждая помечается «предложение агента, требует подтверждения автора». Принятые автором дописываются в SoTA-sheet строками `distinction: X vs Y` — следующий прогон уже детерминирован. |
| 62 | 3. **`sota_sources: none` в манифесте** → сначала добрать источник (вернуться к Шагу 1.5 pack-new) ИЛИ формализовать практику автора как источник — fallback допустим только при недоступности внешнего SoTA по домену, с явной записью в `06-sota/`: `source: author practice`, `evidence: self-report / interview`, `claims: 2-4 тезиса`, `validity region: личный опыт автора`. Голое «я так делаю» без формализации — не источник (размывает D11). |
| 63 | 4. **Соседние Pack'и (`PACK-*` в `${IWE:-$HOME/IWE}/`) — только образец ФОРМЫ:** структура |