Подобрать способ действия под затруднение человека из локальных FPF/DPFs, SPF и своих паков и провести по нему; честно сказать, если метода нет или в нём нет шагов. Используй, когда человек спрашивает «как подойти к …», «есть ли метод для …», «найди метод».
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Is that skill safe to install?
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
Are you the author of Find Method?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tserentserenov-find-method)
---
name: find-method
description: Подобрать способ действия под затруднение человека из локальных FPF/DPFs, SPF и своих паков и провести по нему; честно сказать, если метода нет или в нём нет шагов. Используй, когда человек спрашивает «как подойти к …», «есть ли метод для …», «найди метод».
argument-hint: "<затруднение своими словами>"
version: 0.2.0
layer: L1
status: experimental
browser_safe: false
triggers:
slash: [/find-method]
phrases: ["найди метод", "есть ли метод", "как подойти к"]
routing:
executor: sonnet
deterministic: false
agents: single
interaction: multi-step
gates_required: []
gates_enforced: []
gates_rationale: "операционный скилл; состояние пользователя не двигает, РП не создаёт"
---
<!--
Source: WP-608 Ф11 (author IWE). Acceptance: 10.11.2026, the draft executed literally
on local FPF/SPF/pack copies without installation — contract stubs 7/7, live cases
re-run 6/6 and control run 3/3 on 0.2.0. Reads local files only, so not browser-safe.
-->
# Найти и применить метод
Затруднение: $ARGUMENTS
## Когда вызывать, когда нет
- Вызывать: человек описывает затруднение и ищет **способ действия** («как мне …», «чем это делают», «есть ли метод»).
- Не вызывать: вопрос «какие принципы применимы к решению» — это `/fpf`. `/fpf` допустим после шага 5 как необязательная проверка границ.
## Контракт источника
Сценарий обращается к источнику только тремя запросами, и шаги ниже названы через них:
1. **перечень** — какие записи есть (идентификатор, имя, вид источника — свод / процесс SPF / пак / Библиотека, при наличии строка применимости); вид источника нужен шагу 4, где поля берутся по-разному;
2. **карточка** — запись по идентификатору или имени;
3. **промах** — явный ответ «нет такой записи», отличный от пустоты. Используется в рефлексе (шаг 0): названный человеком идентификатор или имя дали промах → шаг 8.
Редакция в следе — коммит источника из этого прогона; у источника без коммита (заглушка приёмки, Библиотека) — его собственная метка версии, с пометкой, что это не коммит.
Поиск по затруднению — шаг сценария (сопоставление ключевых слов с перечнем), а не запрос к источнику. Ниже описана **локальная реализация** этих трёх запросов для первого выпуска. Будущий источник «Библиотека методов» и заглушки приёмки отвечают на те же три запроса; текст шагов 0–8 при этом не меняется.
## Локальная реализация (первый выпуск — только она)
Только локальные копии, никаких сетевых источников и подписочных инструментов:
| Источник | Перечень | Заголовок записи (идентификатор и имя) | Карточка |
|---|---|---|---|
| FPF/DPFs | `FPF/DPFs/README.md` и README наборов (`FPF/DPFs/<Suite>/README.md`) перечисляют **файлы фреймворков**; записи перечня — заголовки паттернов **внутри этих файлов**: `## <ID> - <Name>` или `## <ID> — <Name>` (в своде встречаются оба разделителя) | идентификатор — до разделителя, `name` — после него | от заголовка до `### <ID>:End` (или `## <ID>:End`) |
| SPF | `SPF/process/README.md`; записи — файлы `SPF/process/01-*.md` … `11-*.md` (`00-process-overview.md` — обзор, не запись) | первая строка `# NN. <Name>` | весь файл процесса |
| Свои паки | файлы `PACK-*/pack/*/03-methods/*.md` | шапка файла (frontmatter): `id`, `name`; `name_en` — если есть; заголовок первого уровня `# …` — запасное имя | весь файл карточки |
- Подписочный инструмент `iwe-knowledge` и любые сетевые поиски **не вызывать**: иначе подбор опирается на подписку, которой в Open нет.
- Пустой или отсутствующий свой пак пропустить без вопроса.
- Фраза в `FPF/DPFs/README.md` «describe it in ordinary words and search the texts» в этом навыке **не действует**: поиск идёт только по заголовкам (шаг 2). Совпадение слова только в теле — не кандидат.
- **Редакция** каждого открытого источника берётся командой в этом прогоне: `git -C <источник> log -1 --format=%h` (для пака — его репозиторий). Не из памяти, не из этого текста.
## Шаги
### 0. Режим
- **Рефлекс** — только если в реплике человека уже названы идентификатор или английское имя метода и карточка по нему нашлась (запрос «карточка по id/имени»). Сразу к шагу 4. Знание модели о методе основанием не является.
- **Эскалация** — человек просит **агента самого** совершить внешнее или необратимое действие, затруднение упирается в конфликт правил или явно вне компетенции агента: сказать это человеку и остановиться. Если затруднение лишь **упоминает** предстоящее необратимое решение человека («нужно ли исследование, если завтра необратимая закупка») — это не эскалация, а подбор; риск называется на шаге 5.
- **Уточнение** — по реплике нельзя назвать ни предмет, ни действие затруднения («подскажи метод, у меня проблема с проектом»): **один** уточняющий вопрос до поиска, без кандидатов и догадки. После ответа — подбор.
- Иначе — **подбор** (шаги 1–8).
### 1. Затруднение и ключевые слова
Повторить затруднение одной русской фразой. Подобрать 3–6 английских ключевых слов для свода и SPF и, если свой пак не пуст, 2–4 русских — у карточек пака имена русские, `name_en` часто пуст. Предел считается по разным словам; формы одного слова (п.2 шага 2) в него не входят — у русских слов брать основу, чтобы «тревожные» совпало с «тревожных». **Показать слова человеку** — это след поиска.
### 2. Поиск по перечню и заголовкам
1. Запрос **перечень** ко всем трём источникам. Для FPF/DPFs: прочитать README, затем в **каждом** файле фреймворка, на который они указывают, найти заголовки паттернов (1143 в `FPF/DPFs` на 07.11). Фреймворки заранее не отсекать: угаданный каталог даёт ложный промах.
2. Кандидат — запись, в **заголовке** (или для пака — во всех непустых из `name`, `name_en` и заголовка первого уровня `# …`) которой есть хотя бы одно слово из следа. Совпадение только в теле — не кандидат. **Слово сравнивается целиком**, без учёта регистра; дефис делит слово на два (`Decision-Support` → `decision`, `support`); формы одного слова (число, `-ion`, `-ing`, у русских — основа) записываются в след отдельными словами заранее, а не угадываются при сравнении (`bread` не совпадает с `breadth`).
3. **Служебные записи свода — не кандидаты:** заголовки с `.Reference:`, `.Application:`, `.Sources:`, `.Advising:` в идентификаторе и любые разделы наборов без своего `:End` (`.Profiles:`, `.Edition:`, `.Use:`, `.Source:`, `.Reminder:` и подобные) справочные, методом не бывают.
4. **Порядок и отбор:** больше совпавших разных слов из следа — выше; при равенстве — свой пак, затем процесс SPF, затем свод; внутри источника — по алфавиту пути файла без учёта регистра, внутри файла — по порядку заголовков. Оставить не больше трёх; число всех совпавших записей назвать в следе.
5. Ни одного кандидата → шаг 8 (промах).
**Ветка «какие методы есть» (сценарий 1.6).** Если человек спрашивает не «как мне …», а «какие методы есть по …»: назвать по каждому источнику число записей перечня и число совпавших (служебные записи не считать), имена совпавших — не больше десяти по порядку пункта 4, без вывода всего перечня; строка применимости — только дословным фрагментом открытой карточки, иначе не давать. Затем предложить выбрать запись и перейти к шагу 4 или закончить.
### 3. Кандидаты человеку
По каждому кандидату показать: идентификатор; имя **точно как в заголовке** (не переводить); дословный фрагмент на языке источника (заголовок или строку применимости), по которому кандидат выбран — у свода и SPF английский, у русской карточки пака русский; русское пояснение одной фразой. Человек выбирает один; агент за него не выбирает. Кандидат один — всё равно спросить коротко «берём его?»: это тот же выбор, не лишний ход.
### 4. Карточка метода
Открыть тело выбранной карточки (таблица источника) и собрать проекцию полей:
| Поле | Откуда | Если нет в тексте |
|---|---|---|
| идентификатор, редакция | свод — заголовок до **первого** разделителя; SPF — `SPF.NN` по номеру процесса (`SPF.07`); пак — `id` шапки; путь + коммит из этого прогона | не бывает пустым |
| `name` | свод — текст заголовка после первого разделителя (« - » или « — »), побайтово; SPF — после «`NN. `»; пак — `name` из шапки, при его отсутствии — весь текст заголовка `# …` без знака `#` и пробела, вместе с приставкой вроде «Метод: »; А4 тогда сравнивает с этим заголовком | — |
| `name_en` | у FPF/DPFs и SPF = `name`; у пака — `name_en` из шапки | пусто |
| `supersedes` | у пака — одноимённое поле шапки, если есть; у FPF/DPFs и SPF — нет | пусто |
| применимость | свод — `<ID>:0 - Use This When`, при его отсутствии — абзац «Use this when…» в `<ID>:1`; SPF — Purpose и Inputs (раздела применимости у процессов нет — сказать это); пак — «Когда применять», иначе Purpose | пусто |
| ограничения | свод — фразы «Do not use…» в тех же разделах, Consequences; SPF — Typical Errors; пак — «Антипаттерны», Failure Modes | пусто |
| ожидаемый результат | свод — Consequences; SPF — Completion Criteria, Outputs; пак — Outputs, «Результат» | пусто |
| шаги | по критерию ниже, дословно | пусто |
| проверка результата, альтернативы | Conformance Checklist / Related Methods и т. п. | пусто |
**Пустое поле остаётся пустым.** Агент не достраивает его из общих знаний. Человеку говорится, чего в источнике нет.
**Критерий «шаги есть»** (механический, без перефраза и без добавления пунктов):
- FPF/DPFs: внутри раздела `<ID>:4 - Solution` есть подраздел, тело которого — нумерованный список (`1.`, `2.` …). Чаще всего это `Pattern-Use Unfolding`, `Perform the Move`, `Short working route`, но решает нумерованный список, а не имя подраздела. **Таких подразделов несколько → шаги — первый по порядку подраздел второго уровня (`<ID>:4.N`)**; вложенные (`<ID>:4.N.M`) и карточки-вопросники (в имени `Card`, `Checklist`, `Questions`) шагами не берутся. Пример: в `RMP.1:4` шаги — `4.1` (8 пунктов), не `4.3.1` и не `4.7 First-Hour Qualification Card`.
- Процесс SPF: внутри `## Activity` есть нумерованные подзаголовки `### N. …`.
- Карточка пака: есть раздел, в заголовке которого есть «Шаги», «Алгоритм», «Steps», «Procedure», «Процедура» или «Порядок», и в нём нумерованный список или нумерованные подзаголовки (`### 1.` или `### Шаг 1.`).
- **Дословно** — весь текст пункта, включая вложенный маркированный список; вложенные маркеры остаются внутри своего шага и шагов не добавляют.
- Нумерованный список вне этих мест (`Conformance Checklist`, `Record the Result`, `Use This When`) шагами **не** считается.
### 5. Проверка границ
Сверить затруднение с применимостью и ограничениями карточки. **Факты о ситуации — только из реплик человека в этом разговоре.** Возможны три исхода:
- условия совпадают → шаг 6;
- формулировка похожа, но в затруднении есть риск или условие, которых применимость не покрывает → сказать это прямо и не применять молча (человек решает, идти ли дальше);
- из описания нельзя решить → **один** уточняющий вопрос, без догадки.
По желанию — `/fpf` для проверки границ принципами.
### 6. Применение
- **Шаги есть** → идти по ним в их порядке, цитируя пункт перед каждым шагом.
- **Шагов нет** → сказать: «в источнике есть описание, пошагового метода нет». Дать дословно применимость и ограничения (если есть) и перейти к шагу 7. **Никакого нумерованного плана, перенумерованных абзацев Solution или чеклиста в роли шагов.** Проверку результата (Conformance Checklist и т. п.), если она есть, показывать отдельно, с подписью «критерии проверки результата, не шаги», сплошным абзацем или цитатой — не нумерованным списком сразу после фразы «пошагового метода нет».
### 7. Что изменилось
Обязательный вопрос человеку: «что изменилось?» По желанию — строка учёта `метод: <id>@<редакция>` в записи сессии или карточке РП.
### 8. Промах
Сказать: «метода нет», одной строкой — чего не нашлось (по следу: какие слова, в каких перечнях), и остановиться. Свой метод не выдумывать. Если у человека есть свой пак, можно указать, что свой способ записывают карточкой в его папку `03-methods/` по шаблону `SPF/pack-template/03-methods/_method-card-template.md`. В FPF человек не пишет. Запрос нового метода в этом выпуске не реализован.
## Шаги, помеченные «только шаблон / подписка»
Не выполняются в Open и в прогоне «шаблон с пустыми данными человека»; в полном шаблоне выполняются (между шагами 1 и 2, как дополнительный фильтр кандидатов) или пропускаются короткой фразой:
- подбор с учётом ступени человека (профиль ступени);
- опора на историю РП и прошлые сессии;
- подбор по состоянию человека.
В текущем черновике ни один обязательный шаг 0–8 на них не опирается.
## След (что видно после каждого прогона)
Ключевые слова; перечни, которые прочитаны; кандидаты с дословными фрагментами; выбранный идентификатор и редакция источника (коммит из этого прогона); класс исхода: **промах** / **описание без шагов** / **проход по шагам**. След остаётся у человека: навык работает только на локальных копиях и наружу ничего не отправляет.
<!-- USER-SPACE -->
<!-- /USER-SPACE -->