Memory: ~ent MVP_Scope_AreaSelect_Apr25 (2026-04-25 16:17:12 +05)

This commit is contained in:
Light1YT 2026-04-25 16:17:12 +05:00
parent ed54d148f9
commit 1dcaff0ea2

View file

@ -6,7 +6,7 @@
{"type":"entity","name":"Validation_Findings_Apr25","entityType":"review","observations":["Дата валидации: 25 апреля 2026","КРИТИЧНО: бизнес-план v2.1 не синхронизирован со стеком v2.2 — в плане 12 мес. месяцы 14 ещё ссылаются на .NET Core 8","Несостыковка KPI: v2.1 = 4 платящих пилота, v2.2 = 3 — нужно остановиться на 3 (как в Acceptance Criteria v2.2)","Регион не зафиксирован однозначно: v2.1 пишет «Свердл. или Лен.», v2.2 — только Свердл. — закрепить Свердловскую","Прайсинг: пилот 30 тыс., прайс-лист 70120 тыс. — уточнить в финмодели для инвесторов: 70 тыс./мес как baseline","Технические риски: Time to First Value ≤10 мин амбициозно (предложение: 15 мин); генерация концепции ≤10 сек требует профилировки с первого билда","PostgreSQL TDE отсутствует в open-source — заменить на pgcrypto + шифрование чувствительных полей на уровне приложения","mypy --strict для всего MVP избыточен соло-разработчику — оставить только для core-модулей (geometry/scoring/financial)","99% uptime в рабочие часы для соло-разработчика рискованно — реалистично 95% + ответ в течение рабочего дня","Заявка в реестр ПО ≠ свидетельство; срок рассмотрения 60180 дней — учесть для расчёта Раунда А","Бюджет 1,2 млн ₽ + 3 мес. + один основатель плотный; рекомендация — заложить буфер +1 месяц или урезать DXF-экспорт из Discovery"]}
{"type":"entity","name":"Feedback_MemoryFirst","entityType":"feedback","observations":["Правило: вся информация по проекту gendesign хранится в memory-gendesign.jsonl (context=\"gendesign\"). Информация = факты, решения, результаты анализа, обсуждения стратегии, KPI, списки рисков, протоколы валидации и т.д.","НИКОГДА не создавать .md / .docx / .pdf / .pptx файлы самостоятельно — даже если кажется, что это поможет. Документы генерируются ТОЛЬКО по явному запросу («сделай md», «собери в документ», «выгрузи в docx»).","При поступлении новых фактов/решений в разговоре — сразу сохраняем в память через aim_memory_store / aim_memory_add_facts в context=\"gendesign\".","Для файловой генерации по запросу: запрос срез из памяти (aim_memory_search/read_all) → сборка документа. Память = единый источник правды, файлы = производные.","**Why:** пользователь хочет избежать разъехавшейся инфы между версиями доков (как случилось с v2.1/v2.2). Единый источник (граф памяти) — синхронен по определению.","**How to apply:** в любом обмене по этому проекту — (1) сначала читаем gendesign-память, (2) ведём диалог/анализ, (3) сохраняем новые выводы в память, (4) файлы только если пользователь явно запросил."]}
{"type":"entity","name":"MemoryAutoSync_macOS_Apr25","entityType":"infrastructure","observations":["Дата настройки: 25 апреля 2026, машина anton@macOS (/Users/anton)","Цель: автоматическая двусторонняя синхронизация файла графа памяти ~/.aim/memory-gendesign.jsonl с веткой main репо lekss361/-gendesign на GitHub","Хард-линк: ~/.aim/memory-gendesign.jsonl и ~/source/repos/gendesign/memory/memory-gendesign.jsonl — один inode, link count = 2. Любая запись MCP-сервера видна в git status мгновенно","Git auth: credential.helper=osxkeychain (глобально), токен github.com сохранён в Login Keychain под аккаунтом Light1YT — push идёт без интерактива","Sync agent (push): launchd job com.gendesign.memory-sync, plist в ~/Library/LaunchAgents/com.gendesign.memory-sync.plist, скрипт ~/.aim/gendesign-memory-sync.sh. Триггер: WatchPaths на файле памяти. Дебаунс: ThrottleInterval=60с. Логика: проверка целостности хард-линка → git pull --rebase --autostash → парсинг diff и сборка content-aware commit message → git commit → git push origin main","Pull agent: launchd job com.gendesign.memory-pull, plist в ~/Library/LaunchAgents/com.gendesign.memory-pull.plist, скрипт ~/.aim/gendesign-memory-pull.sh. StartInterval=120с + RunAtLoad=true. Делает git pull --rebase --autostash, лог только при реальных изменениях; чинит хард-линк если порвался","Commit message format: 'Memory: <summary> (<timestamp>)'. Summary включает +ent/~ent/-ent (новая/изменённая/удалённая сущность) и +rel/-rel (связи). Парсер на python3 встроен в sync-скрипт","Защита от atomic-rewrite MCP-сервера: оба скрипта проверяют stat -f %i у обоих файлов; если inode разошлись — копируют контент из репо в ~/.aim и пере-создают хард-линк","Логи: ~/.aim/gendesign-sync.log (sync trigger лог), ~/.aim/gendesign-sync.launchd.log (stderr launchd для sync), ~/.aim/gendesign-pull.log (pull лог только при изменениях), ~/.aim/gendesign-pull.launchd.log (stderr launchd для pull)","Управление: launchctl load/unload <plist> для включения/выключения; launchctl list | grep gendesign — статус; tail -f ~/.aim/gendesign-*.log — мониторинг","Ручное вмешательство нужно только при merge-конфликте jsonl (две машины правили одну сущность одновременно) — лог покажет 'pull --rebase failed', чинится руками в репо","Не реализовано: автоматический pull в момент чтения памяти Claude Desktop (он читает текущий файл, может быть отстающим до 120с от удалённой ветки); нет защиты от чужих незакоммиченных правок в memory/ перед auto-commit (autostash спасает только от своих локальных)"]}
{"type":"entity","name":"MVP_Scope_AreaSelect_Apr25","entityType":"decision","observations":["Дата решения: 25 апреля 2026","Сценарий MVP-приложения: на конкретном выбранном участке пользователь выделяет (рисует) область → приложение генерирует варианты: концепции застройки (ген.планы), финансовые модели и др. — каждый вариант с оценкой/рейтингом","Сужает MVP scope относительно two-in-one воронки из Project_GenDesign: Discovery MVP фокусируется на стадии 'участок известен → область выделена → концепт + финмодель + оценка', а не на полной цепочке 'инвест-критерии → Site Finder → концепт → финмодель'","Связанные UX-элементы: карта (Mapbox/Leaflet) с выбором участка, инструмент рисования полигона (выделение области), кнопка 'сгенерировать варианты', список/грид вариантов с оценками, детальный view по выбранному варианту (генплан визуально + финмодель в таблице/графиках)","Решено (Site Finder): откладывается в Пост-MVP. Discovery MVP фокус — генерация вариантов на уже выбранном участке. Импликация для Phase0_DiscoveryMVP: M1-цель 'прототип Site Finder с 1000 участков' переориентируется на pipeline 'участок → область → 3 варианта → PDF' на 510 демо-участках","Решено (формат выдачи): двухэтапный. Этап 1 (ранний MVP) — PDF-отчёт с генпланом и финмоделью (WeasyPrint с первого билда). Этап 2 (поздний MVP / след итерация) — интерактивный просмотр вариантов на карте (Mapbox/Leaflet)","Решено (метрики оценки): референс — TestFit (https://www.testfit.io/). Стартовый набор метрик (в стиле TestFit, адаптировать под РФ): buildable area, GFA / NSF, количество юнитов, unit mix, parking count + ratio, hard cost / soft cost / total cost, выручка (продажа или аренда), доходность (IRR / ROI / yield), проверка соответствия ПЗЗ (рос аналог zoning). Финальный список — после изучения TestFit demo и первого пилота","Решено (число вариантов): 3 варианта на генерацию (фиксированно в MVP). Импликация: API возвращает массив длины 3, фронт показывает 3-карточный грид; бюджет времени ≤ 10 сек (из Validation_Findings_Apr25, лучше ≄15 сек) распределяется на 3 варианта параллельно — ограничение сложности каждого","Решено (источники данных об участке): поддерживаем все источники на минимально-полном уровне: ПЗЗ Екб, кадастр (КН), пользовательская загрузка GeoJSON/KML. 'Минимально-полный' = достаточно для 12 демо-сценариев в каждом источнике, без полной автоматизации всех граничных случаев"]}
{"type":"entity","name":"MVP_Scope_AreaSelect_Apr25","entityType":"decision","observations":["Дата решения: 25 апреля 2026","Сценарий MVP-приложения: на конкретном выбранном участке пользователь выделяет (рисует) область → приложение генерирует варианты: концепции застройки (ген.планы), финансовые модели и др. — каждый вариант с оценкой/рейтингом","Сужает MVP scope относительно two-in-one воронки из Project_GenDesign: Discovery MVP фокусируется на стадии 'участок известен → область выделена → концепт + финмодель + оценка', а не на полной цепочке 'инвест-критерии → Site Finder → концепт → финмодель'","Связанные UX-элементы: карта (Mapbox/Leaflet) с выбором участка, инструмент рисования полигона (выделение области), кнопка 'сгенерировать варианты', список/грид вариантов с оценками, детальный view по выбранному варианту (генплан визуально + финмодель в таблице/графиках)","Решено (Site Finder): откладывается в Пост-MVP. Discovery MVP фокус — генерация вариантов на уже выбранном участке. Импликация для Phase0_DiscoveryMVP: M1-цель 'прототип Site Finder с 1000 участков' переориентируется на pipeline 'участок → область → 3 варианта → PDF' на 510 демо-участках","Решено (формат выдачи): двухэтапный. Этап 1 (ранний MVP) — PDF-отчёт с генпланом и финмоделью (WeasyPrint с первого билда). Этап 2 (поздний MVP / след итерация) — интерактивный просмотр вариантов на карте (Mapbox/Leaflet)","Решено (метрики оценки): референс — TestFit (https://www.testfit.io/). Стартовый набор метрик (в стиле TestFit, адаптировать под РФ): buildable area, GFA / NSF, количество юнитов, unit mix, parking count + ratio, hard cost / soft cost / total cost, выручка (продажа или аренда), доходность (IRR / ROI / yield), проверка соответствия ПЗЗ (рос аналог zoning). Финальный список — после изучения TestFit demo и первого пилота","Решено (источники данных об участке): поддерживаем все источники на минимально-полном уровне: ПЗЗ Екб, кадастр (КН), пользовательская загрузка GeoJSON/KML. 'Минимально-полный' = достаточно для 12 демо-сценариев в каждом источнике, без полной автоматизации всех граничных случаев","Решено (число вариантов): 3 варианта на генерацию (фиксированно в MVP). API возвращает массив длины 3, фронт показывает 3-карточный грид. Бюджет времени на генерацию: ≤10 сек (требование из Validation_Findings_Apr25 — требует профилировки с первого билда), распределяется на 3 варианта параллельно — ограничение сложности алгоритма каждого"]}
{"type":"relation","from":"Project_GenDesign","to":"TechStack_v2.2","relationType":"uses"}
{"type":"relation","from":"Project_GenDesign","to":"NorthStar_DiscoveryMVP","relationType":"targets"}
{"type":"relation","from":"Project_GenDesign","to":"Phase0_DiscoveryMVP","relationType":"currently_executes"}