---
type: Evaluation
title: "Независимая оценка ответа Haiku — пост 2026-10-05__msk__46369615 (экспедиция по Дагестану), промпт v5"
description: "Оценщик Opus сверил ответ Haiku с текстом поста об авторском туре по Дагестану на 4 и 5 дней по критериям prompt-v5/EVALUATION-RUBRIC: страна, 13 мест, 2 тура без отелей, одна строка цены на список из 8 дат, перелёт, дословные поля, сомнения. Отдельно разобрано, какое прочтение списка дат лучше для покупателя. Ожидаемый ответ агента не открывался."
resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v5/EVALUATION-independent-check-of-haiku-answer.md
tags: [cheaptrip, llm, haiku, evaluation]
generated: { by: claude-code/claude-opus-5-5, at: 2026-10-10T20:00:00Z }
status: stable
sources:
  - id: rubric
    resource: trip-places-hotels-prices-llm/prompt-v5/EVALUATION-RUBRIC-for-independent-opus-check-of-haiku-answer.md
    title: Критерии независимой оценки v2
    author: claude-code/claude-opus-5-5
    last_modified: 2026-10-09
  - id: input
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v5/INPUT-user-message-exactly-as-sent-to-haiku.md
    title: Пост, как его видела модель
  - id: answer
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v5/ANSWER-haiku-json-for-this-post.json
    title: Ответ Haiku
---

# Итог

**Справилась с ошибками.** Оба маршрута, все 10 мест маршрута, обе цены (36 000 ₽ и 47 000 ₽) и все 8 дат на месте, перелёт верно «не входит»; пропущены «Кавказ» из меток и достопримечательность «язык тролля» — на странице «Кавказ» покупатель этот тур не найдёт.

# Счёт

| Что | В посте | В ответе |
|---|---|---|
| Страны | 1 — Россия: метки «По России», «Спецпроект Ч Россия» | 1 — Россия |
| Места мельче страны | 13 — «Дагестана», «Кавказ» (метки), 10 мест маршрута от «Махачкала» до «Дербент», «языке тролля» | 11 — нет «Кавказ» и «языке тролля» |
| Отели | 0 — гостиница не названа: «жить — в уютной гостинице в древнем селении» | 0 |
| Туры без отелей | 2 — «Маршрут на 4 дня: …», «Маршрут на 5 дней: …» | 2 |
| Строки цены | 2 — «36 000 ₽ — без перелета*», «47 000 ₽ — без перелета*» | — |
| Предложения | 16 при прочтении «одно на дату» (2 строки цены × 8 дат) | 16 |

# Список дат под одной ценой — какое прочтение лучше

В посте под каждым маршрутом:

> Даты туров:
> Октябрь: 7, 14, 21, 28
> Ноябрь: 4*, 11, 18, 25
> …
> Стоимость на 3 ночи на 1 человека:
> 36 000 ₽ — без перелета*

Промпт определяет предложение как «одна строка с ценой тура: дата вылета, число ночей, цена», а здесь одна строка цены на 8 дат. Модель выбрала «одно предложение на каждую дату» и честно написала об этом в `doubts_comment`.

**Для покупателя лучше «одно предложение на дату».**

- Цена «от» одинакова при обоих прочтениях — 36 000 ₽. Разница не в цене, а в датах.
- Одно предложение на строку цены требует выбрать одну `departure_date`. Если взять первую — «7» октября, через 2 дня после публикации «2026-10-05» — программа сочтёт тур прошедшим уже 8 октября. А в посте ещё 7 вылетов до «25» ноября. Тур пропадёт со страниц Дагестана, Махачкалы, Дербента — покупатель его не найдёт. Это худший исход по цели «пропуск хуже лишнего».
- Если вместо даты поставить `null`, программа не сможет ни снять тур после 25 ноября, ни показать ближайший вылет.
- Одно предложение на дату даёт программе: ближайший вылет, снятие каждой прошедшей даты по отдельности, отбор «на ноябрьские праздники» — «4*» с пометкой «* На праздники!».
- Цена прочтения — 16 строк вместо 2 и расхождение со счётом из шага 7 «Посчитай строки цены тура». Это решается одной фразой в промпте, см. «Что поправить в промпте».

**Что модель положила в `departure_date_as_in_post`.** Голое число дня: «7», «14», «21», «28», «4*», «11», «18», «25». Каждое — непрерывный кусок поста, скрипт нашёл все 84 дословных поля. Месяц в дословном поле потерян, он есть только в `departure_date` (2026-10-14 и т. д.) — это не ошибка, но поле не помогает проверить месяц. Лучшее значение — см. замечание З1.

# Ошибки

| № | Что не так | Дословно из поста | Что в ответе | Как это скажется на покупателе |
|---|---|---|---|---|
| 1 | Пропущено место из меток блога | метки: «… Без виз, Кавказ, На праздники, 4 ночи» | в `places` нет записи «Кавказ» | на странице «Кавказ» тура нет; покупатель, который ищет Кавказ, его не найдёт |
| 2 | Пропущена названная достопримечательность программы | «сделаем фото на «языке тролля»» | в `places` нет записи «языке тролля» (`природный объект`, «место по маршруту или программе») | если на сайте есть страница этой достопримечательности, тура там не будет; влияние малое |

## Замечания — не ошибки модели

| № | Что | Дословно из поста | Что в ответе | Как это скажется на покупателе |
|---|---|---|---|---|
| З1 | Дословная дата — только число дня, без месяца. Промпт случай списка дат не описывает, голое «14» правилу «непрерывный кусок» не противоречит | «Октябрь: 7, 14, 21, 28» | `departure_date_as_in_post: "14"`, `"4*"` | не скажется: дата с месяцем и годом верна в `departure_date`. Но по дословному полю нельзя проверить месяц: «7» встречается и в «Тур с 7 октября». Лучше брать строку месяца целиком: «Октябрь: 7, 14, 21, 28» |
| З2 | Оба тура названы одинаково — названием из заголовка; различаются только маршрутом | «Авторский тур «Природные сокровища Дагестана» на 4 или 5 дней» | оба `tour_name_as_in_post: "Авторский тур «Природные сокровища Дагестана»"` | не скажется: правило шага 6 «нет — заголовок поста дословно» выполнено, маршруты разные (второй с «Дербент») |

# Что сделано хорошо

- **Оба маршрута записаны отдельными турами** с полным порядком мест:
  - «Махачкала → бархан Сарыкум → … → Карадахская теснина → Махачкала» — 10 мест;
  - второй — с «→ Дербент → Махачкала» — 11 мест.
- **Каждое место маршрута — в `places`** с ролью «место по маршруту или программе»; Дербент — тоже, хотя он только в 5-дневном маршруте.
- **Цены и ночи — из строки условий.** «Стоимость на 3 ночи на 1 человека:» → `nights: 3`, «Стоимость на 4 ночи на 1 человека:» → `nights: 4`; строки условий скопированы дословно, с двоеточием.
- **`price_is_for` верно:** «на 1 человека» без слов о размещении → «с человека, размещение не сказано».
- **Перелёт.** «36 000 ₽ — без перелета*» → `flight_included: false` у всех 16 предложений, доказательство дословно из строки цены.
- **Город вылета не взят из сноски.** «* Стоимость перелета Москва — Махачкала — Москва от 13 000 ₽» → `departure_city_as_in_post: null`, Москва не попала в места.
- **Не предложения не попали в `offers`:** «3 000 ₽ — скидка детям 5-8 лет», «1 000 ₽ — скидка детям 8-12 лет», «от 13 000 ₽», «ж/д билеты от 15 000 ₽».
- **Годы дат верны:** публикация «2026-10-05», «Октябрь: 7» → 2026-10-07, «Ноябрь: 25» → 2026-11-25.
- **«Тур с 7 октября на гарантии!» не стал сомнением** — как велит шаг 7.
- **Сомнение по делу.** `doubts_comment` с цитатами «Октябрь: 7, 14, 21, 28», «Ноябрь: 4*, 11, 18, 25» объясняет, почему предложений 16, а не 2 — ровно тот случай, когда пост читается двумя способами.
- **Дословные поля.** Скрипт проверил 84 поля, не найдено 0.

# Что поправить в промпте

- **Ошибка 1 — места из меток.** В шаге 4 «Где искать места» к пункту «заголовок и метки блога» добавить: «Каждая метка, которая называет место — регион, город, остров, горы, — отдельная запись: метка «Кавказ» → место «Кавказ», роль «только в заголовке или метках»».
- **Ошибка 2 — достопримечательности в описании программы.** В шаге 4 «Где искать места» добавить пункт: «описание программы тура: названные достопримечательности, в том числе в кавычках — «сделаем фото на «языке тролля»» → «языке тролля», `природный объект`, роль «место по маршруту или программе». Безымянные — «мини-пустыня», «аул-призрак», «подземный водопад» — не пиши».
- **Список дат под одной ценой (не ошибка, но промпт молчит).** В шаг 6 и в определение «Предложение» добавить: «Одна строка цены стоит под списком дат («Октябрь: 7, 14, 21, 28 / Ноябрь: 4*, 11, 18, 25» и ниже «36 000 ₽ — без перелета*») → одно предложение на каждую дату, с одной и той же ценой. В шаге 7 считай такие предложения как „строк цены × дат“, сомнение об этом не пиши».
- **З1 — дословная дата из списка.** В описание `departure_date_as_in_post` добавить: «Дата в списке под месяцем — пиши строку месяца целиком, как в посте: «Октябрь: 7, 14, 21, 28». Не составляй «Октябрь: 14» — такого куска в посте нет; число и месяц — в `departure_date`».
