gendesign/memory/memory-gendesign.jsonl

20 lines
No EOL
16 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"type":"_aim","source":"mcp-knowledge-graph"}
{"type":"entity","name":"Project_GenDesign","entityType":"project","observations":["Стартап: AI-подбор земельных участков (Site Finder) + автоматическая генерация концепций застройки (Generative Design) для девелоперов РФ","Two-in-one воронка: от инвест-критериев → найденный участок → концепт застройки → финансовая модель","Конкуренты: rTIM (только концепт-стадия, нет site-selection), TestFit (нет РФ-данных)","Целевая аудитория: инвестдепартаменты + архитектурно-проектные отделы региональных девелоперов","Фаза 0 — Discovery MVP, апрель–июнь 2026 (3 месяца)","Бюджет Фазы 0: 0,91,2 млн ₽","Корневой репозиторий: C:\\Users\\user\\source\\repos\\gendesign","Документы хранятся в docs/ внутри репозитория"]}
{"type":"entity","name":"TechStack_v2.2","entityType":"tech_stack","observations":["Решение зафиксировано в апреле 2026: переход с .NET на Python для Discovery MVP","Backend: Python 3.12, FastAPI 0.115+, SQLAlchemy 2.0, GeoAlchemy2, Pydantic v2, Alembic, Celery + Redis, httpx","Геометрия: Shapely 2.0, GeoPandas 1.0, Pyproj (проекции WGS84 ↔ UTM ↔ МСК-66 для Свердловской обл.), Rasterio","ML: XGBoost (скоринг участков), scikit-learn, pandas, NumPy","База данных: PostgreSQL 16 + PostGIS 3.4, Redis 7","Frontend: Next.js 15, React 19, TypeScript 5, Tailwind CSS 4, shadcn/ui, TanStack Query, Mapbox GL JS или Leaflet","Экспорт: WeasyPrint (PDF), ezdxf (DXF), openpyxl (Excel)","Инфра: Yandex Cloud или VK Cloud, Docker, GitHub Actions, Sentry","Dev tools: uv (зависимости), ruff (линтер+форматтер), mypy (типизация), pytest"]}
{"type":"entity","name":"NorthStar_DiscoveryMVP","entityType":"goal","observations":["К концу месяца 3 (июнь 2026): 3 платящих пилотных клиента, ≥30 тыс. ₽/мес каждый","Заявка в реестр российского ПО подана","Це́ль: получить право пройти в Раунд А на 2025 млн ₽","Acceptance criteria разбиты на 3 блока: функционально / бизнесово / технически","Правило перехода: 3/3 → Раунд А; 2/3 → продление Фазы 0 на 12 мес.; 1/3 или меньше → стоп проекта","В v2.2 цель = 3 пилота; в v2.1 (бизнес-план) указано 4 пилота — расхождение, требует синхронизации в пользу 3"]}
{"type":"entity","name":"Phase0_DiscoveryMVP","entityType":"phase","observations":["Discovery MVP, месяцы 13 после старта","Пилотный регион: Свердловская обл. (Екатеринбург, ПЗЗ Екатеринбурга, МСК-66)","Месяц 1 цели: ООО зарегистрировано, прототип Site Finder с 1000 участков, 50 целевых клиентов в CRM, 5 cold-outreach, 3 встречи","Месяц 2 цели: 15 встреч кумулятивно, 2 LOI, 1 платящий пилот (≥30 тыс. ₽/мес), демо на реальных участках, первая статья","Месяц 3 цели: 20+ встреч, 3 платящих пилота, 7+ LOI, 1 регадминистрация в переговорах, заявка в реестр ПО, инвест-deck (12 слайдов), финмодель на 5 лет"]}
{"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":"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"}
{"type":"relation","from":"Phase0_DiscoveryMVP","to":"NorthStar_DiscoveryMVP","relationType":"delivers"}
{"type":"relation","from":"Validation_Findings_Apr25","to":"Project_GenDesign","relationType":"reviews"}
{"type":"relation","from":"Validation_Findings_Apr25","to":"TechStack_v2.2","relationType":"validates"}
{"type":"relation","from":"MemoryAutoSync_macOS_Apr25","to":"Project_GenDesign","relationType":"supports"}
{"type":"relation","from":"MemoryAutoSync_macOS_Apr25","to":"Feedback_MemoryFirst","relationType":"implements"}
{"type":"relation","from":"Phase0_DiscoveryMVP","to":"MVP_Scope_AreaSelect_Apr25","relationType":"includes"}
{"type":"relation","from":"MVP_Scope_AreaSelect_Apr25","to":"Project_GenDesign","relationType":"refines"}
{"type":"relation","from":"MVP_Scope_AreaSelect_Apr25","to":"NorthStar_DiscoveryMVP","relationType":"informs"}