---
type: Evaluation
title: "Независимая оценка ответа Haiku — пост 2026-10-05__msk__46369615 (экспедиция по Дагестану), промпт v6 с флагом --json-schema"
description: "Оценщик Opus сверил ответ Haiku с текстом поста об авторском туре по Дагестану на 4 и 5 дней по критериям prompt-v6/EVALUATION-RUBRIC: страна, 13 мест, 2 тура без отелей, одна строка цены на список из 8 дат, перелёт, дословные поля, сомнения. Отдельно разобрано, какое прочтение списка дат лучше для покупателя и что модель положила в departure_date_as_in_post. Ожидаемый ответ агента не открывался."
resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v6/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-v6/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-v6/INPUT-user-message-exactly-as-sent-to-haiku.md
    title: Промпт v6 с постом в блоке <пост_для_анализа>, как его получила модель
  - id: answer
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v6/ANSWER-haiku-json-for-this-post.json
    title: Ответ Haiku
---

# Итог

**Справилась с ошибками.** Оба маршрута, 12 из 13 мест (включая «Кавказ» из меток), обе цены и все 8 дат верны — покупатель найдёт тур на страницах Дагестана, Кавказа, Махачкалы и Дербента с ценой «от» 36 000 ₽; но 12 дословных дат собраны из частей («Октябрь: 14» — такого куска в посте нет), пропущен «язык тролля», а сомнение пересказывает решения.

# Счёт

| Что | В посте | В ответе |
|---|---|---|
| Страны | 1 — Россия: метки «По России», «Спецпроект Ч Россия» | 1 — Россия |
| Места мельче страны | 13 — «Дагестана», «Кавказ» (метки), 10 мест маршрута от «Махачкала» до «Дербент», «языке тролля» | 12 — нет «языке тролля» |
| Отели | 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 дат. Модель выбрала «одно предложение на каждую дату».

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

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

**Что модель положила в `departure_date_as_in_post`.** Месяц и число склеены: «Октябрь: 7», «Октябрь: 14», …, «Ноябрь: 4*», «Ноябрь: 11», … Только «Октябрь: 7» и «Ноябрь: 4*» — непрерывные куски поста (начало строк «Октябрь: 7, 14…» и «Ноябрь: 4*, 11…»). Остальные 12 скрипт не нашёл: в посте «Октябрь: 7, 14, 21, 28», а не «Октябрь: 14». Это нарушение правила формата: «Дата вылета дословно, весь кусок с датой как в посте … Не собирай дату из частей». Покупатель этого не увидит: `departure_date` верна у всех 16. Но поле перестаёт быть проверяемым — по нему нельзя отличить склейку от выдумки.

# Ошибки

| № | Что не так | Дословно из поста | Что в ответе | Как это скажется на покупателе |
|---|---|---|---|---|
| 1 | Дословная дата собрана из частей — 12 значений из 16, по 6 в каждом туре; скрипт их не нашёл | «Октябрь: 7, 14, 21, 28», «Ноябрь: 4*, 11, 18, 25» | `departure_date_as_in_post: "Октябрь: 14"`, `"Октябрь: 21"`, `"Октябрь: 28"`, `"Ноябрь: 11"`, `"Ноябрь: 18"`, `"Ноябрь: 25"` | напрямую не скажется — `departure_date` верна (2026-10-14 и т. д.); но проверка дословных полей даёт 12 ложных тревог, и выдуманную дату от склеенной не отличить |
| 2 | Пропущена названная достопримечательность программы | «сделаем фото на «языке тролля»» | в `places` нет записи «языке тролля» | если на сайте есть страница этой достопримечательности, тура там не будет; влияние малое |
| 3 | `doubts_comment` пересказывает решения, а не называет сомнение | весь пост | «Пост без названий отелей: туры описаны маршрутами, поэтому оба маршрута записаны как туры без отелей … Кавказ назван только в метках, Дагестан — в заголовке и тексте («по Дагестану!»); Россия — из меток «По России».» | не скажется на странице; человеку, который читает сомнения, придётся продираться через пересказ к единственному настоящему сомнению — «каждая дата — отдельное предложение» |

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

| № | Что | Дословно из поста | Что в ответе | Как это скажется на покупателе |
|---|---|---|---|---|
| З1 | Название тура взято из подписи маршрута, а не из названия тура | «Авторский тур «Природные сокровища Дагестана» на 4 или 5 дней»; «Маршрут на 4 дня: Махачкала → …» | `tour_name_as_in_post: "Маршрут на 4 дня"`, `"Маршрут на 5 дней"` | не скажется; туры зато различаются по имени. Правило шага 6 «название тура дословно» скорее велит «Природные сокровища Дагестана» |

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

- **«Кавказ» из меток записан** с ролью «только в заголовке или метках» — покупатель на странице Кавказа тур найдёт. В прогоне v5 этого места не было.
- **Оба маршрута — отдельными турами** с полным порядком мест: 10 мест в 4-дневном, 11 — в 5-дневном с «Дербент».
- **Каждое место маршрута — в `places`** с ролью «место по маршруту или программе».
- **Ночи и условия из строки условий:** «Стоимость на 3 ночи на 1 человека:» → `nights: 3`, `price_is_for: "с человека, размещение не сказано"`; «Стоимость на 4 ночи на 1 человека:» → `nights: 4`.
- **Перелёт:** «36 000 ₽ — без перелета*» → `flight_included: false` у всех 16, доказательство «без перелета».
- **Город вылета не взят из сноски** «* Стоимость перелета Москва — Махачкала — Москва от 13 000 ₽» → `null`.
- **Не предложения не попали в `offers`:** скидки детям «3 000 ₽», «1 000 ₽», перелёт «от 13 000 ₽», «ж/д билеты от 15 000 ₽».
- **Годы дат верны:** «Октябрь: 7» → 2026-10-07 при публикации 2026-10-05; «Ноябрь: 25» → 2026-11-25.
- **Пометка «4*» сохранена** — программа сможет связать её со сноской «* На праздники!».

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

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