- Schema version (x_schema_version, schema_hash) в prompt/trace - Кеш read/search/logs/env (ContextCache) в plan-цикле - Контекст-диета: MAX_FILES=8, MAX_FILE_CHARS=20k, MAX_TOTAL_CHARS=120k - Plan→Apply двухфазность, NO_CHANGES, path sanitization - Protected paths, content validation, EOL normalization - Trace (PAPAYU_TRACE), redaction (PAPAYU_TRACE_RAW) - Preview diff, undo/redo, transactional apply Co-authored-by: Cursor <cursoragent@cursor.com>
143 lines
12 KiB
Markdown
143 lines
12 KiB
Markdown
# Анализ папок проекта PAPA YU и рекомендации по объединению
|
||
|
||
Документ описывает текущее состояние папок, связанных с PAPA YU, и итог объединения в одну рабочую папку (папка **папа-ю** по вашему требованию не переносилась).
|
||
|
||
**Проверенные пути:**
|
||
- `/Users/yrippertgmail.com/Desktop/papa-yu` — **единая папка проекта** (код, сборка, скрипты).
|
||
- `/Users/yrippertgmail.com/Desktop/папа-ю` — только документы и ТЗ (не переносилась).
|
||
- `/Users/yrippertgmail.com/PAPA-YU` и `/Users/yrippertgmail.com/papa-yu` — одна и та же папка в домашнем каталоге (другая структура: desktop/ui, desktop/src-tauri); после объединения можно архивировать или удалить.
|
||
|
||
Итог объединения: см. `docs/ЕДИНАЯ_ПАПКА_ПРОЕКТА.md`.
|
||
|
||
---
|
||
|
||
## 1. Текущее состояние папок
|
||
|
||
### 1.1. `papa-yu` (латиница, на рабочем столе)
|
||
|
||
| Назначение | Содержимое |
|
||
|------------|------------|
|
||
| **Роль** | Единственная папка с исходным кодом десктопного приложения PAPA YU |
|
||
| **Стек** | React, Vite, TypeScript, Tauri 2, Rust |
|
||
| **Структура** | `src/`, `src-tauri/`, `package.json`, `docs/`, скрипты запуска (`start-with-openai.sh`), конфиги |
|
||
| **Запуск** | `npm run tauri dev` или `./start-with-openai.sh` |
|
||
| **Сборка** | `npm run tauri build` → .app в `src-tauri/target/release/bundle/macos/` |
|
||
|
||
**Вывод:** это основная рабочая папка для кода и сборки. Все правки приложения должны вноситься здесь.
|
||
|
||
---
|
||
|
||
### 1.2. `папа-ю` (кириллица, на рабочем столе)
|
||
|
||
| Назначение | Содержимое |
|
||
|------------|------------|
|
||
| **Роль** | Только документация и ТЗ по проекту PAPA-YU |
|
||
| **Содержимое** | `ЗАПУСК_ПРИЛОЖЕНИЯ.txt`, `старт/` (этапы 1–7, DOCX), `коррект/`, `ТЗ/`, архивы zip |
|
||
| **Код** | Нет исходного кода приложения |
|
||
| **Ссылки** | В тексте указано: запуск из `papa-yu/` (например `papa-yu/Собрать и запустить PAPA-YU.command`) |
|
||
|
||
**Вывод:** папка используется как хранилище спецификаций и инструкций. Для «одной папки» её можно либо оставить как внешний архив документов, либо привязать к `papa-yu` через ссылку/подпапку (см. ниже).
|
||
|
||
---
|
||
|
||
### 1.3. «PAPA YU» как имя папки
|
||
|
||
Отдельной папки с названием **PAPA YU** (с пробелом) на рабочем столе нет.
|
||
**PAPA YU** — это название приложения (окно, `tauri.conf.json`). На macOS при открытии пути типа `~/Desktop/PAPA-YU` с учётом регистра может открываться та же файловая система, что и для `papa-yu` (зависит от настроек тома). Имеет смысл считать «одной папкой проекта» именно **`papa-yu`** и все пути вести к ней.
|
||
|
||
---
|
||
|
||
### 1.4. `papa-app` (на рабочем столе)
|
||
|
||
| Назначение | Содержимое |
|
||
|------------|------------|
|
||
| **Роль** | Отдельное веб-приложение (Next.js), не десктоп PAPA YU |
|
||
| **Содержимое** | `app/`, `components/`, `lib/`, Next.js-конфиги, а также «Новая папка» / «Новая папка с объектами» с материалами по PAPA (SQL, DOCX, скриншоты) |
|
||
| **Связь с PAPA YU** | Общее имя «PAPA», но другой продукт (веб vs десктоп) |
|
||
|
||
**Вывод:** для объединения именно **десктопного PAPA YU** `papa-app` не объединять с `papa-yu` в один репозиторий/проект. Документы по PAPA из `papa-app` при необходимости можно копировать в общую структуру документов (см. ниже).
|
||
|
||
---
|
||
|
||
## 2. Рекомендуемая «одна папка» для загрузки, изменений и правок
|
||
|
||
Цель: **всё, что касается десктопного приложения PAPA YU, вести из одной папки** — загрузка (clone/build), правки кода, запуск, сборка, документация.
|
||
|
||
### 2.1. Базовая рекомендация: единая точка входа — `papa-yu`
|
||
|
||
- **Загрузка / клонирование:** один репозиторий или один архив — папка **`papa-yu`**.
|
||
- **Изменения кода:** только в **`papa-yu`** (src, src-tauri, конфиги).
|
||
- **Запуск и сборка:** всегда из корня **`papa-yu`**:
|
||
- разработка: `cd papa-yu && npm run tauri dev` или `./start-with-openai.sh`;
|
||
- сборка: `cd papa-yu && npm run tauri build`.
|
||
- **Документация по приложению:** хранить внутри **`papa-yu/docs/`** (как сейчас: OPENAI_SETUP, E2E, IMPROVEMENTS и т.д.). Все инструкции по запуску/сборке ссылаются на пути относительно `papa-yu`.
|
||
|
||
Итог: **«одна папка» = `papa-yu`**. Все операции с десктопным PAPA YU выполняются из неё.
|
||
|
||
---
|
||
|
||
### 2.2. Как учесть папку `папа-ю` (документы), не перемещая файлы
|
||
|
||
Варианты **без** физического переноса файлов (только рекомендации):
|
||
|
||
1. **Оставить как есть**
|
||
- Рабочая папка — `papa-yu`.
|
||
- `папа-ю` — отдельный каталог с ТЗ и этапами.
|
||
- В `papa-yu/README.md` или в `docs/` один раз явно написать: «ТЗ и спецификации проекта лежат в папке `папа-ю` на рабочем столе (или по пути …)».
|
||
|
||
2. **Ссылка в документации**
|
||
- В `papa-yu/docs/` добавить файл (например `СВЯЗЬ_С_ДОКУМЕНТАМИ.md`) с единственной строкой: где физически лежит `папа-ю` и что там (ТЗ, этапы, архивы). Все продолжают открывать код только в `papa-yu`, а документы — по этой ссылке.
|
||
|
||
3. **Симлинк (если нужен «один корень»)**
|
||
- Внутри `papa-yu` создать, например, `docs/specs-from-papa-yu-cyrillic` → симлинк на `~/Desktop/папа-ю`. Тогда «всё видно» из одного дерева `papa-yu`, но файлы кириллической папки не копируются. Рекомендация: делать только если действительно нужен единый корень в проводнике/IDE.
|
||
|
||
---
|
||
|
||
### 2.3. Как учесть `papa-app`
|
||
|
||
- **Не объединять** с `papa-yu` в один проект/репозиторий: разный стек и назначение.
|
||
- Если нужно хранить общие материалы по бренду/продукту PAPA:
|
||
- либо оставить их в `papa-app` и в `papa-yu/README.md` кратко указать: «Веб-интерфейс и доп. материалы — в проекте papa-app»;
|
||
- либо вынести общие документы в отдельную папку (например `Desktop/PAPA-docs`) и из обеих папок на неё ссылаться.
|
||
|
||
Объединение в одну папку для загрузки/правок здесь не рекомендуется.
|
||
|
||
---
|
||
|
||
## 3. Конкретные шаги (рекомендации, без автоматических изменений)
|
||
|
||
1. **Определить единственную рабочую папку**
|
||
- Для десктопного приложения: **`/Users/.../Desktop/papa-yu`**.
|
||
- Все пути в инструкциях (README, docs, скрипты) вести относительно неё.
|
||
|
||
2. **В README или docs папы-yu**
|
||
- Явно написать: «Проект ведётся из одной папки — papa-yu. Запуск, сборка и правки — только из её корня.»
|
||
- Указать при необходимости: «ТЗ и этапы — в папке папа-ю (кириллица) по пути …».
|
||
|
||
3. **Скрипты запуска**
|
||
- Все скрипты (например `start-with-openai.sh`, будущий `Собрать и запустить PAPA-YU.command`) должны:
|
||
- находиться в `papa-yu/`;
|
||
- выполнять `cd` в корень `papa-yu` (например `cd "$(dirname "$0")"`);
|
||
- не ссылаться на «PAPA-YU» или «папа-ю» как на каталог с кодом.
|
||
|
||
4. **Имя папки в системе**
|
||
- Для избежания путаницы с регистром и пробелами лучше везде использовать **`papa-yu`** (латиница, один регистр). Не создавать дубликат с именем «PAPA YU» или «PAPA-YU» для кода.
|
||
|
||
5. **Документация из папа-ю**
|
||
- Если позже понадобится «всё в одном месте»: можно скопировать выбранные DOCX/PDF из `папа-ю` в `papa-yu/docs/specs/` (или аналогичную подпапку) и при желании обновить ссылки в README. Это уже будет решение по переносу файлов; в текущем документе достаточно понимать, что логически «одна папка» — это `papa-yu`, а `папа-ю` — внешний архив, связь с которым задаётся явной ссылкой в документации.
|
||
|
||
---
|
||
|
||
## 4. Краткая сводка
|
||
|
||
| Вопрос | Ответ |
|
||
|--------|--------|
|
||
| Какую папку считать «одной» для загрузки и правок? | **`papa-yu`** (латиница). |
|
||
| Где вносить изменения в код и конфиги? | Только в **`papa-yu`**. |
|
||
| Откуда запускать и собирать приложение? | Из корня **`papa-yu`**. |
|
||
| Что делать с папкой `папа-ю`? | Оставить как хранилище ТЗ; в `papa-yu` описать путь к ней в README/docs или (по желанию) добавить симлинк в `papa-yu/docs/`. |
|
||
| Нужно ли объединять с `papa-app`? | Нет; это другой продукт. При необходимости — только ссылка в документации. |
|
||
| «PAPA YU» как папка? | Отдельной папки с таким именем нет; это название приложения. Рабочая папка — **`papa-yu`**. |
|
||
|
||
Все рекомендации выше можно выполнять вручную; автоматических изменений в файлы этот документ не вносит.
|