refactor(cfe-patch-method): эргономика вывода по итогам dogfood

По результатам прогона субагентом реального сценария (адаптация метода Бухгалтерии
+ рефакторинг оригинала → конфликт):

- SKILL.md: убрана протёкшая и УСТАРЕВШАЯ реализация — раздел про merge-воркспейс
  называл файлы merged.bsl/diff.txt, которых больше нет; раздел «Проверка/актуализация
  пачкой» дублировал рантайм-вывод. Оставлено только решенческое (режимы, область,
  зона ответственности, зачем проактивно).
- conflict.md: к каждой неразмещённой вставке добавлена привязка к якорю (после/перед из
  local) и подсказка «куда переносить» (якорь вынесен/отрефакторен → ищи в диффе новый
  вызов, размещай пост-обработкой) + напоминание сохранить BOM. Диагноз дрейфа якоря
  теперь виден, не нужно грепать вручную.
- Согласование числительных в итог-строках (было «1 конфликтов»).

Паритет ps1<->py, 16 кейсов зелёные в обоих.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-18 21:07:41 +03:00
co-authored by Claude Opus 4.8
parent 9aaa3a1c1e
commit dcce32faed
4 changed files with 54 additions and 30 deletions
+7 -15
View File
@@ -80,25 +80,17 @@ allowed-tools:
- `[АКТУАЛЕН]` — оригинал не менялся, изменений нет;
- `[АКТУАЛИЗИРОВАН]` — тело обновлено по новому оригиналу, правки (`#Вставка`/`#Удаление`) перенесены автоматически (в выводе — сводка перенесённого);
- `[АКТУАЛИЗИРОВАН-ЧАСТИЧНО]` — часть правок не удалось разместить (окружающий контекст изменился). Они помечены `// [РЕСИНК-КОНФЛИКТ]` и не потеряны; в системный temp выгружается merge-воркспейс (`base.bsl` — предок, `local.bsl` — твоя версия с маркерами, `remote.bsl` — новый оригинал, `merged.bsl` — результат, `diff.txt` — base→remote) — путь печатается в выводе. Проверь конфликтные блоки и размести вручную.
- `[АКТУАЛИЗИРОВАН-ЧАСТИЧНО]` — часть правок не удалось разместить (якорь изменился в новом оригинале). Они помечены `// [РЕСИНК-КОНФЛИКТ]` в модуле и не потеряны. Путь к merge-воркспейсу печатается в выводе — начни с `index.md`, дальше по каждому конфликту его `conflict.md` (см. ниже), размести блоки вручную в `.bsl` расширения.
Повторный вызов `Before`/`After`/`Instead` для уже перехваченного метода не создаёт дубль (`[ПРОПУЩЕН]`).
## Проверка и актуализация пачкой (`-Check` / `-Actualize`)
## Пакетно: `-Check` / `-Actualize`
После обновления конфигурации контролируемые методы (`&ИзменениеИКонтроль`) могут разойтись с
исходником — платформа при загрузке об этом молчит, ошибка всплывает лишь в рантайме. Эти режимы
проходят по **всем** `&ИзменениеИКонтроль` расширения (или сузить: `-ModulePath` — модуль, `+ -MethodName` — один):
- **`-Check`** — только отчёт: какие методы дрейфнули (`ДРЕЙФ` / `КОНФЛИКТ` / `МЕТОД-ИСЧЕЗ`); актуальные
считаются числом (`100/103 актуальны`). Ничего не пишет. Код возврата **1**, если есть что чинить.
- **`-Actualize`** — чинит: авто-переносит правки, для неоднозначных — merge-воркспейс.
Зона ответственности — **только тело `&ИзменениеИКонтроль`** (не свойства/формы/сигнатуры).
Merge-воркспейс конфликтов (`-Actualize`) в системном temp: `index.md` (тонкий список конфликтов с
путями к `.bsl` расширения для правки) + подпапка на каждый конфликтный метод с `conflict.md`
(что перенести + дифф) и `base/local/remote`. Путь печатается в выводе.
По **всем** `&ИзменениеИКонтроль` расширения (сузить: `-ModulePath` — модуль, `+ -MethodName` — один);
затрагивают **только тело** контролируемых методов. `-Check` — отчёт по дрейфу (`exit 1`, если есть),
ничего не пишет; `-Actualize` — авто-перенос правок, конфликты уходят в merge-воркспейс (путь и порядок
разбора печатаются в выводе). Полезно после обновления КФ — о рассинхроне контроля платформа при
загрузке молчит.
## Команда