← Задача 009 — все материалы · оригинал на GitHub

Пример: куда попадает каждый объект или факт

⚠️ Пример, не рабочая база (задача 009). В базы ничего не загружено.

Сводка

Факты

Факт Значение Источник
Реестров сейчас 3 JSON + журнал спорных случаев realestate-registry/
Кто пишет реестры сейчас агент Claude Code руками; скрипт шага 4 — только черновики draft-… по новым ссылкам опись, раздел 7
property_id, contact_id менять запрещено; apartment_id = нынешний property_id realestate-registry/CLAUDE.md; PROPOSAL §2
Тема (topic) меняется только словами Константина; переход: buying_apartment_in_barceloneta → buy, my_current_rental → my_current_rental realestate-registry/CLAUDE.md; PROPOSAL §3
Где сабаренда соседний репо cl-cons-barceloneta-apartment-sublet-listings, точный адрес не хранится опись, раздел 3
Координаты сейчас в реестрах — 0; в примерах задачи 009 — во frontmatter страниц и в карте; в рабочей базе — реестр гео нового репо опись, раздел 2; PROPOSAL §2

Таблица маршрутов

# Объект или факт Куда Почему Кто пишет
1 Новая ссылка idealista от агента в WhatsApp 🗄️ реестр квартир: черновик draft-… с listing_urls; ⚙️ страница listing — генерируется дубли ищутся по ссылке в одном месте; ссылка из переписки — недоверенные данные, не открываем скрипт (черновик) → агент (разбор)
2 Та же квартира у второго агентства 🗄️ новая ссылка у того же объекта, marketed_by_several_agencies: true; ⚙️ вторая страница listing → тот же apartment объект один, объявлений много — иначе цены не сравнить агент; спорное — в журнал, решает Константин
3 Новый агент написал в WhatsApp 🗄️ реестр контактов: contact_id, роль, works_at_company_id, цитаты; ⚙️ страница agent контакт с доказательствами — факт переписки агент
4 Новое агентство 🗄️ реестр компаний: company_id, сайт; ⚙️ страница agency; ✍️ предпочтения — в её ручной зоне название и сайт — факт; «как с ними торговаться» — вывод агент
5 Адрес офиса агентства 🧭 реестр гео нового репо по company_id: адрес, lat/lon, geo_precision в реестры cl-cons-whats новые поля не добавляем (PROPOSAL §2) агент по переписке или сайту → скрипт геокодирования
6 Просмотр назначен или прошёл 🗄️ реестр квартир visit_dates; ⚙️ строка хронологии дата — факт переписки с msg_id агент
7 Впечатление после просмотра («вид лучше у первой») ✍️ ручная зона страницы apartment, с msg_id оценка, а не поле агент
8 Предложение цены (наше или встречное) 🧭 реестр сделок: offers[] (дата, сумма, условия) у deal; ⚙️ таблица цен и хронология на странице deal переговоры — отдельная сущность; в реестры cl-cons-whats не пишем агент со слов Константина и по переписке
9 Изменение цены объявления (185 000 → 176 000 €) 🗄️ текущая цена — price_eur_total в реестре квартир; 🧭 каждое изменение — событие в журнале .jsonl с msg_id; ⚙️ история цены на странице listing текущее значение одно, история не теряется агент
10 Отказ — мой или их 🗄️ status_in_conversation (rejected_by_me / rejected_by_them) — как сказано в переписке; 🧭 у deal: outcome: lost, lost_by, lost_reason из списка PROPOSAL §2 статус — факт переписки; причина из короткого списка — для сравнения через полгода агент; причину спорную — Константин
11 Квартира Ukio в аренду 🧭 реестр объявлений с сайтов: listing_id: ukio-<имя>-<номер>, purposes: [rent_for_us], seen_at, stale_after; 🧭 координаты — реестр гео, geo_precision: street; ⚙️ страница listing источник — сайт, а не переписка; цена динамическая; срок «весна 2027» — в требованиях поиска, не в назначении агент со страницы сайта
12 Район (barri) 🧭 реестр гео: codi_barri у каждой точки; ⚙️ страница area район один на много объектов; код, а не строка — без разнобоя написания скрипт (точка в полигоне Open Data BCN)
13 Координаты объекта 🧭 реестр гео по property_id / listing_id: lat, lon, geo_precision, источник; кэш ответов геокодера — realestate-geo-data/; ⚙️ frontmatter страниц и карта один факт — одно место; правила Nominatim требуют кэш скрипт (ICGC / Nominatim, 1 запрос в секунду)
14 Catastro RC 🧭 реестр гео: RC дома (14 символов) → building; полный RC (20 символов) — у apartment; ⚙️ страница building решает «угловой дом с двумя адресами» и «две квартиры в одном доме» скрипт по адресу; агент — если RC прислал агент
15 Предпочтение по переговорам («без задатка 1 % цену не несут») ✍️ ручная зона страницы agency или agent, с msg_id вывод из нескольких сообщений, не поле агент; правила «на будущее» — Константин
16 Скорость ответа, язык агента 🧭 реестр нового репо по contact_id (считает скрипт); ⚙️ страница agent считается подсчётом, руками не вписывать; в реестры cl-cons-whats не добавляем скрипт
17 VIP-факт о человеке (Ирина, Давид) _cons-project-context/1N-person-…md и _cons-output-whatsapp-chat-exports/REGISTRY-whatsapp-people-vip-marks-and-facts-from-konstantin.json; на страницах недвижимости — только ссылка факты Константина главнее выводов агентов; переписку Ирины не цитируем Константин (слова) → агент (запись)
18 Сабаренда своей квартиры соседний репо cl-cons-barceloneta-apartment-sublet-listings; в базе — ссылка и sublet_my_flat в purposes той же квартиры у сабаренды свои площадки, тексты, фото и запрет хранить адрес агент в том репо
19 Моя аренда у Давида Гарсии 🗄️ реестр квартир current-rented-flat-from-david-garcia, topic: my_current_rental; 🧭 реестр гео — только центр района, geo_precision: area; purposes: [my_current_rental, sublet_my_flat] адрес по решению Константина не хранится; Давид — VIP, не агент покупки агент; адрес — только если Константин разрешит
20 Требования поиска «снять весной 2027» 🧭 реестр требований: search-rent-spring-2027 — даты, бюджет, районы, нужна ли прописка; ⚙️ страница search требования — отдельная сущность (как SavedSearch в RESO); по ним фильтруется карта Константин (слова) → агент
21 Требования «купить у пляжа» (ниже Pepe Rubianes, без перехода улиц с машинами) 🧭 реестр требований: search-buy-barceloneta-near-beach; ⚙️ страница search граница зоны — не barri, а слова Константина; Housfy и Tecnocasa отсеялись бы фильтром Константин (слова) → агент
22 Фото и видео квартиры файлы рядом с объектом, на странице — ссылки; в git — 🔮 решить (размер) медиа из WhatsApp — чувствительные данные; в текст страницы не вставлять скрипт выгрузки; решение о хранении — Константин
23 Договор, задаток (arras), nota simple только у Константина (локально, вне git); 🧭 у deal — факт «подписан / дата / сумма» личные документы — не для репозитория Константин
24 Новая переписка WhatsApp целиком _cons-output-whatsapp-chat-exports/CHAT-whatsapp-*.jsonl первоисточник; база только ссылается на msg_id скрипт (шаг 1)
25 Карта и GeoJSON ⚙️ из реестров cl-cons-whats и реестров нового репо правка руками потеряется при следующей сборке скрипт

Правило «один факт — одно место»

🗄️ Живёт только в реестрах cl-cons-whats

🧭 Живёт только в реестрах нового репо

✍️ Живёт только в ручной зоне страницы

⚙️ Генерируется (руками не правится)

⚠️ Где сейчас нарушено

Open Threads

Timeline