$npx -y skills add TserenTserenov/FMT-exocortex-template --skill bottleneck-pickАналитик ограничений (DP.ROLE.054): находит главное ограничение (bottleneck) конкретного конвейера через TOC Five Steps + EC + NBR и строит Stage Dependency Map. Используй ТОЛЬКО при работе с конкретным WP, эпиком, проектом или weekplan (--target WP-NNN|weekplan|pilot:id). НЕ исп
| 1 | # Skill: /bottleneck-pick |
| 2 | |
| 3 | > # see DP.SC.045, DP.ROLE.054, DP.WP.016 |
| 4 | > |
| 5 | > Носитель методики TOC для пилота: Goldratt Five Focusing Steps + Tendon TameFlow Replenishment Cycle + Dettmer Thinking Processes. |
| 6 | > Реализует роль **Аналитика ограничений (DP.ROLE.054)** через пятифазный ВДВ-каскад. |
| 7 | > Источник: WP-313 (Ф1 research: Tendon «Tame Your Work Flow», Dettmer, Schragenheim, Goldratt S&T; Ф11 IntegrationGate). |
| 8 | |
| 9 | ## Триггеры |
| 10 | |
| 11 | - Пользователь открывает зонтичный РП, эпик, проект и спрашивает «что делать сначала» |
| 12 | - Запрос «выбери bottleneck», «что важнее», «с чего начать» |
| 13 | - Стратегическая сессия с отбором НЭП («какое направление сейчас bottleneck») |
| 14 | - Диагност (R28) запрашивает анализ для учебного конвейера пилота |
| 15 | - Явный вызов `/bottleneck-pick --target WP-NNN` |
| 16 | |
| 17 | ## Принцип SC-first (главное правило) |
| 18 | |
| 19 | > **Документо-центричный подход — анти-паттерн.** Начинать со списка pending-РП = риск принять канал доставки за продукт. |
| 20 | |
| 21 | **Правильно:** Ф2 сканирует функциональные обещания (DP.SC) ДО Ф3 (signal-scan по структуре работ). |
| 22 | **Тест:** если в Constraint Brief нет ссылок на конкретные DP.SC, которые «не работают» — это провал Ф2. |
| 23 | |
| 24 | ## API |
| 25 | |
| 26 | ``` |
| 27 | /bottleneck-pick --target <ref> [--layer intra|platform] [--horizon <горизонт>] [--depth <1|2|3>] [--scope <direct|direct+related|full>] |
| 28 | ``` |
| 29 | |
| 30 | ### Параметры |
| 31 | |
| 32 | | Параметр | Default | Описание | |
| 33 | |----------|---------|----------| |
| 34 | | `--target` | обязательный | `WP-NNN` (зонтичный РП), `weekplan` (текущая неделя), `pilot:<account_id>` (учебный конвейер пилота), `b2:aisystant` (вся экосистема — требует `--layer=platform`), `c2:platform` (только техника — требует `--layer=platform`), project-name, repo-path | |
| 35 | | `--layer` | intra | `intra` = внутри одной системы (constraint = фаза / РП / блок). `platform` = между подсистемами C2 (constraint = подсистема / handover / роль B3). Опора: `memory/project_iwe_systems_map.md` | |
| 36 | | `--horizon` | all | day, week, month, wave-1, wave-2, quarter, next-stage | |
| 37 | | `--depth` | 2 | 1 = Five Steps only; 2 = + EC для конфликтующих кандидатов; 3 = + Coupling-analysis SOTA.011 для top-3 handovers (только при `--layer=platform`) | |
| 38 | | `--scope` | direct+related | direct = только target; direct+related = + связанные РП из frontmatter; full = + reachable через граф связей ≤2 hops | |
| 39 | |
| 40 | ### Источники по типу `--target` |
| 41 | |
| 42 | | Target | Что читает скилл | Где живёт источник | |
| 43 | |--------|------------------|---------------------| |
| 44 | | `WP-NNN` | `${IWE_GOVERNANCE_REPO:-DS-strategy}/inbox/WP-NNN-*.md` + связанные РП + git за 7d | governance | |
| 45 | | `weekplan` | `${IWE_GOVERNANCE_REPO:-DS-strategy}/current/WeekPlan W{N}.md` + active-wp.md + DP.SC поверх активных РП | governance | |
| 46 | | `pilot:<id>` | `learning.activity_log` + `learning.cp_assessments` + `learning.bh_metrics` (Neon) | платформа (учебный конвейер) | |
| 47 | | `b2:aisystant` | `03-our-systems-map.md` (S2R) + `DP.MAP.002` + `project_iwe_systems_map.md` + cross-system SC | governance + Pack | |
| 48 | | `c2:platform` | `DP.MAP.002` (12 подсистем) + 15 новых Q2 из `project_iwe_systems_map.md` | Pack + memory | |
| 49 | |
| 50 | ### Error cases |
| 51 | |
| 52 | | Ситуация | Поведение | |
| 53 | |----------|-----------| |
| 54 | | target не найден | «Не нашёл `<target>`. Проверь номер или путь.» → СТОП | |
| 55 | | target = done-РП | «`<target>` уже закрыт. Укажи активный РП.» → СТОП | |
| 56 | | target пустой (нет структуры) | «Нет структуры для анализа в `<target>`.» → СТОП | |
| 57 | | Данные устарели (>7 дней без git-активности) | Добавить ⚠️ к signal-scan, не останавливаться | |
| 58 | | EC не сходится (пустые assumptions) | Fallback к Five Steps, отметить в output | |
| 59 | | Все кандидаты не agent-actionable | «Все кандидаты не agent-actionable. Нужна другая точка входа.» | |
| 60 | |
| 61 | --- |
| 62 | |
| 63 | ## Алгоритм — пятифазный ВДВ-каскад |
| 64 | |
| 65 | > Принцип ВДВ (DP.M.060): выход фазы = вход следующей. Каждый вход и выход — физический артефакт. |
| 66 | |
| 67 | ### Ф1 — Identify system |
| 68 | |
| 69 | **Вход:** target-ref + `--layer` от пользователя. |
| 70 | |
| 71 | **Действие:** |
| 72 | 1. Классифицировать тип системы-конвейера по `--target` × `--layer`: |
| 73 | - **Учебный конвейер пилота** — `--target pilot:<id>` (FORM.089 RCS, источник: Neon `learning.*`) |
| 74 | - **Конвейер работ (intra)** — `--target WP-NNN | weekplan | project | repo-path`, `--layer=intra`. Структура = направления A-И / фазы Ф1-ФN / блоки внутри одного РП |
| 75 | - **Платформенный (cross-system)** — `--target b2:aisystant | c2:platform | WP-NNN-зонтичный`, `--layer=platform`. Структура = подсистемы C2 (≈27 шт) + handovers + роли B |