# Smeta Remonta Do Dogovora

> «Смета на ремонт квартиры», «посчитай ремонт», «замерный лист и смета в экселе», «смета-меню, чтобы не спорить о цене», «что входит в сумму за ремонт». Цены под город.

- Skill: `kir-kopylov/smeta-remonta-do-dogovora` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add kir-kopylov/smeta-remonta-do-dogovora`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kir-kopylov/smeta-remonta-do-dogovora/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kir-kopylov (https://skillmd.com/u/kir-kopylov)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/kir-kopylov/smeta-remonta-do-dogovora

---


# Remont Smeta Builder

## Запуск Навыка

Этот черновой навык запускайте только при явном вызове по имени или прямой команде пользователя. При одном смысловом совпадении не запускайте навык и не спрашивайте о его применении.

При явном вызове перед первым шагом покажите ровно одну короткую контекстную строку (не более 30 слов) и продолжайте работу в том же ответе, не ожидая реакции:

Применяю черновой навык **«Смета ремонта с замерами»** (обратная связь — @kir-kopylov): <кратко назовите конкретную пользу для текущего запроса>; продолжаю без ожидания.

Не включайте в строку `author_github`, внутреннее имя папки или пересказ всего запроса. Не спрашивайте, применять ли навык.

Если одновременно подходят совместимые навыки, выберите минимальный набор и покажите одну общую строку. Если подходы ведут к несовместимым результатам и запрос не позволяет выбрать, спросите только о желаемом результате, не о разрешении применить навык.

Запуск навыка не расширяет полномочия. Выполните всю безопасную и уже разрешённую часть; запросите подтверждение только непосредственно перед ещё не разрешённым внешним или изменяющим действием. Не запрашивайте повторно уже данное разрешение и не дублируйте системное окно подтверждения.

## Обзор

Повторяемая боль: договорились на сумму «за всё», а потом начинается «а это входит?» — и конфликт между собственником и мастером, потому что объём не был расписан. Skill превращает это в прозрачный документ: сначала собирает реальный объём (интервью + замеры), потом считает попозиционно по актуальным местным ценам, и только после этого видно, сколько ремонт стоит на самом деле. Никаких выводов «суммы мало или много» до расчёта.

Результат — Excel-книга: «Замеры — проёмы», «Замеры — стены и пол», «Тесты замеров», «Решения и проверки», «Смета» (Раздел 1 / Раздел 2), «Материалы», «Справочники».

## Естественные Входы

- «составь смету на ремонт квартиры»
- «посчитай, сколько стоит ремонт»
- «сделай замерный лист и смету в экселе»
- «смета-меню, чтобы не спорить с мастером о цене»
- «проверь, что входит в сумму за ремонт»

## Контрфактический Гейт Рабочего Вопроса

Проверку проводи внутренне; пользователю не показывай вероятные ответы и карту изменений.

Перед любым вопросом проведи контрфактическую проверку:
Представь наиболее вероятные ответы пользователя.
Назови, какое решение, действие или часть результата изменит каждый ответ.
Если следующий шаг при всех ответах одинаков — вопрос запрещён.
Если пользователь уже зафиксировал выбор — запиши его, не открывай заново.
Если неизвестное техническое и его можно проверить самостоятельно — проверь, не спрашивай.
Задавай только ближайший вопрос, ответ на который реально меняет результат.

## Процесс

0. **Локация и момент — до всего.** Определи город/регион, тип адреса и страну (валюта). По умолчанию НЕ Алматы. Если локация не следует из запроса или переданных материалов и меняет расчёт, спроси первым делом. Зафиксируй текущую дату/год на момент запуска.
0-bis. **Состояние между сессиями.** Смета собирается не за один заход. Если пользователь приносит уже начатую книгу — открой её (`openpyxl.load_workbook`) и продолжи с этой точки, а не собирай заново поверх. Пересборка скриптом поверх существующего файла допустима только с флагом `--force`; без него — потеряешь весь ранее введённый замер и решения. Носитель состояния — лист «Сводка»: что уже посчитано, что в домашнем задании собственника, что ждёт вскрытия; перед продолжением прочитай его, чтобы не переспрашивать уже известное.
0-tri. **Формат вывода.** Если формат не указан и выбор меняет способ сдачи, спроси: (1) **Excel-файл** (локально/по почте) или (2) **Google Таблица** для совместной онлайн-работы команды (владелец, дизайнер, прораб, мастер, посуточный оператор). По умолчанию Excel. При выборе Google — собери ту же книгу с `--format gsheet`: скил выдаёт `.xlsx` + файл-инструкцию с пошаговым мостом в Google Таблицы и матрицей ролей. Программно таблица пока НЕ создаётся — нужна Google-авторизация (отдельный этап); это ручной мост (Вариант 1).
1. **Интервью по объёму — по одному вопросу.** Не выдумывай объём. Каждый следующий вопрос пересобирай с учётом всех предыдущих ответов. Раздели позиции на: считаем сейчас, собственник уточнит (домашнее задание), прояснится только при вскрытии.
2. **Замерные листы.** Строка = один объект (каждая дверь, окно, арка, комната отдельно). Размеры — в миллиметрах в отдельных колонках. Площади, периметры и «стены нетто = брутто − проёмы» — формулами. Никогда не сваливай несколько объектов в одну ячейку.
3. **Смета-меню.** Раздел 1 «делаем точно» и Раздел 2 «может понадобиться» (с диагностикой «когда и как это прояснится»). Тон нейтральный, попозиционная стоимость, без ярлыков «доплата» и обвинений. Отдельные суммы по разделам, резерв на непредвиденное процентом.
4. **Цены — живые, под локацию и момент.** Не переноси числа из примеров. Собери актуальные расценки (работа + материалы) для указанного города: веб-поиск по местным прайсам, агрегаторам и объявлениям, минимум 2–3 источника, с датой и ссылкой. Отдели рыночные ставки от SEO-приманок «от …». Для не-крупного города бери ближайший рынок и помечай допущение. Валюта — по стране.
5. **Тесты замеров.** Отдельный лист с формулами-проверками: обмер против тех.паспорта, разброс высот, проём не больше стены и не выше комнаты, размеры в мм (не см/м), полнота. Подсветка ✗ / ⚠ / OK условным форматированием.
6. **Материалы.** Ведомость с количеством, запасом на подрезку/бой, ценами эконом/комфорт и отдельной суммой; материалы покупает собственник.
7. **Форензик-самопроверка перед выдачей.** Назови, где количества всё ещё допущения, где цены не подтверждены живыми офферами, где скрыт ручной труд (вынос мусора, подъём, штробление).

Технически: книга строится через `openpyxl`; формулы лучше пересчитать через LibreOffice, при его отсутствии они посчитаются при открытии в Excel/Numbers; ссылки на ячейки ввода оборачивай в `N()`, чтобы плейсхолдеры и пустые ячейки не давали `#VALUE`; единицы — выпадающими списками со «Справочника».

Готовый детерминированный сборщик книги — `scripts/build_smeta_xlsx.py`: на вход `--city`, `--currency`, опционально `--config` (JSON с `rooms`/`openings`/`materials`), на выход — книга со всеми семью листами, формулами `N()`, выпадающими списками и цветными тестами. Скрипт НЕ заполняет цены и НЕ хардкодит регион. Само по себе отсутствие зашитых цен НЕ гарантирует корректность — корректность даёт живой поиск расценок под локацию плюс гейт цен в книге (каждая цена требует колонок «источник» и «дата» и проходит проверку). Цены в книге без заполненных колонок источник/дата считать неподтверждёнными. Запуск: `python3 scripts/build_smeta_xlsx.py --out <путь>.xlsx --city "<город>" --currency <валюта>`. Повторный запуск поверх начатой книги перезаписывает ввод только с флагом `--force`; без него не трогай существующий файл.

## Границы

- Не гарантия итоговой цены: смета по живым ценам — это ориентир, а не контракт; финал — после замеров и 2–3 живых офферов.
- Не переносить цены или ставки из примеров на другой город или год — это иллюстрация метода, а не прайс.
- Не предполагать регион или валюту — всегда уточнять.
- Не прыгать к выводу «суммы мало/много» до попозиционного расчёта.
- Не публиковать приватное: адрес, тех.паспорт, кадастровый номер, имена, телефоны; в примерах — только обезличенно («Объект А»).

## Опрос После Использования

Опрос задаётся один раз — после передачи готовой Excel-книги со сметой, не посреди рабочего цикла. Если пользователь уже ответил «пропустить» в этой сессии, не переспрашивайте.

```text
Опрос по skill:
1. Что в этом использовании smeta-remonta-do-dogovora было полезно?
2. Что стоит доработать в skill или его формате?
Можно ответить коротко или написать "пропустить".
```

Если пользователь ответил, сохраните санированную карточку в `~/.codex/skill-runs/smeta-remonta-do-dogovora/usage-feedback.jsonl` — лучше через bundled script:

```bash
python3 scripts/log_usage_feedback.py --liked "..." --improve "..." --outcome "..."
```

Script перед записью редактирует приватные пути, контакты и token-like строки и сохраняет `redaction_applied` и `redaction_types`. Если запись невозможна из-за sandbox, прав или отсутствия tools, не делайте вид, что лог сохранён: скажите об этом и покажите короткую JSONL-карточку для ручного сохранения. Raw-ответы, контакты, пути и секреты не коммитить.

## Логирование Сбоев

Перед выполнением прочитайте локальный `known-exceptions.yaml` как список уже известных случаев и применяйте подходящее `do_next_time` без нового поиска.

Если пользователь поправил skill, tool/API/browser упал, нарушен режим работы, пришлось искать workaround или skill сделал ложное предположение, запишите приватную карточку в `~/.codex/skill-runs/<skill-name>/exception-log.jsonl`.

Пишите факты: что skill хотел сделать, что сделал, где сломался, какая предпосылка была ложной и что сделать в следующий раз. Если поле неизвестно, пишите `unknown`. Raw logs не коммитить.

