- live runtime storage сайта - documentation и исследовательские форматы для ручного ввода и сравнения ## Что является live storage сейчас - `asset/data/static/plan.txt` — живая каноническая таблица плана в TXT-first режиме - `asset/data/static/helper/plan.keys.csv` и `asset/data/static/helper/plan.extra.csv` — helper database для стабильных ключей, порядка, `task_uid` и расширенных полей плана - `asset/data/static/project.csv` и `asset/data/static/customer.csv` — основные таблицы записей - `asset/data/static/plan/*` — plan sidecars в формате `slug.kind.ext` - `asset/data/static/task/*` — project/show sidecars, owner-local task files и share bundle items в формате `slug.kind.ext` - `asset/data/static/customer/*` — customer sidecars в формате `slug.kind.ext` - `asset/data/static/templates/*` — HTML-шаблоны в формате `domain.slug.html` - `asset/data/static/privacy/resource.csv` — плоский справочный реестр компаний, правообладателей, производителей, партнеров и почтовых контактов; по умолчанию записи внутренние, а публикация отдельных полей идет через флаги - `HTML` sidecars и upload metadata остаются в своих текущих форматах Правило runtime storage: - использовать только singular folder names - owner folder определяет домен данных: `plan`, `task`, `customer` - имя файла должно быть линейным и уникальным: `slug.kind.ext` - одна живая сущность должна иметь один канонический файл; повторы допустимы только как read-only archive - live placeholder dataset должен состоять только из одного нейтрального `test-*` thread, а не из набора branded demo-данных - если одна и та же задача должна появиться у проекта или клиента, используйте link-table, а не вторую копию текста - периодическая синхронизация дубликатов не считается нормальным runtime-механизмом - исключение: HTML вынесен в `templates/` и именуется как `domain.slug.html` Текущий live demo thread: - `test-client` — единственная live customer card - `test-project` — единственная live project card - `test-share` — единственный live share bundle - если нужен новый demo-сценарий, заменяйте этот thread целиком, а не добавляйте соседний placeholder ## Локальные owner-планы - глобальные переиспользуемые задачи живут только в `asset/data/static/plan.txt` - локальные строки владельца живут в `asset/data/static/task/show.<slug>.plan.txt` и `asset/data/static/task/customer.<key>.plan.txt` - привязки к глобальным задачам живут в `asset/data/static/task/show.<slug>.plan-link.csv` и `asset/data/static/task/customer.<key>.plan-link.csv` - локальный owner-план не является синхронизированной копией глобального плана - `project_slug` и `customer_key` в глобальной задаче считаются metadata, а не автоматической командой на локальный вывод ## TSV - `TSV` остается удобным внешним форматом обмена и импорта - подходит для переноса в таблицы, редакторы и export/import сценарии ## OSSV - `OSSV` = `Odd Space Separated Values` - это project-local исследовательский формат, а не текущий live standard - он остается полезным как лаборатория для будущих flat-table попыток, но сейчас не должен управлять runtime планом ## Где идет исследование OSSV - весь текущий архив попыток перенесен в `doc/ossv-file-format/` - там лежат: - сравнение `plan.txt` и `plan.csv` - пример sidecar `plan/media-portfolio.links.csv` - архивный `plan-from-plan-csv.ossv` - sample-файлы и заметки отката ## Активные правила ручного ввода - для `plan.txt` и owner-local `*.plan.txt` первый токен строки всегда является идентификатором задачи: `[1]`, `[3][1]`, `[1][queue]` - повтор одного и того же numeric id, например `[1]` + `[1]`, трактуется как combo-группа отдельных строк; дочерняя строка должна иметь numeric descendant вида `[1][2]` - для admin textarea-редакторов канонический разделитель колонок — `3` пробела - legacy `TAB` и другие нечетные серии пробелов по-прежнему читаются, но при повторном открытии textarea нормализуются в `3` пробела - для `plan.txt` active body пустая строка означает новую группу задач по порядку - все завершенные строки `plan.txt` должны лежать в одном нижнем footer-блоке, а не смешиваться с active body - для `links_editor` канонический ручной формат: `url title text kind sort_order` - для длительностей поддерживаются минуты, часы, дни, месяцы, сезоны и годы; большие единицы переводятся в минуты по рабочему профилю проекта - профиль по умолчанию: `8 часов/день`, `20 рабочих дней/месяц`, `3 месяца/сезон`, `4 сезона/год` - расчет billable amount по задачам идет от `2/3` часовой ставки, если запись не имеет ручного override - это правило относится к ручному вводу в редакторах, а не к тому, что все runtime файлы должны быть переведены в `OSSV` ## Практический вывод - если нужен надежный live flat-table storage для плана, используйте текущие `plan.txt` + helper CSV; для остальных модулей пока остаются `CSV` и `.env` - если нужен переносимый обмен, используйте `TSV` - если нужен новый лаконичный flat-format для будущей миграции, сначала оформляйте попытки в `doc/ossv-file-format/`, а не в live runtime - если нужно перенести промежуточный static layout в singular folders, используйте repo-root команду `php migrate-static-layout.php --mode=dry-run|apply` ## Как ставить UI-правки быстрее Для визуальных и usability-правок не описывайте задачу общими словами. Передавайте фикс как короткий структурированный блок: - `Page:` точный URL страницы - `Selector:` точный CSS selector или имя блока - `Current:` что сломано сейчас - `Expected:` что должно быть после правки - `Priority:` high / medium / low - `Scope:` visual-only или visual+data - `Screenshot:` если есть Пример: ```text Page: /admin/record-edit.php?module=plan&id=plan-96743f811b2b Selector: body > main > section > div > label > textarea Current: пустое поле выглядит как белый провал без явной границы, секции слипаются Expected: textarea с явной рамкой, компактной стартовой высотой, секции в отдельных bordered blocks Priority: high Scope: visual-only Remove actions: preview_public, preview_private from top action row Move to: Identity and Access -> preview block ```
Форматы структурированного ввода
Живые правила runtime storage, flat-file форматы и исследовательские соглашения по TSV и odd-space вариантам.
Основной файл документа: index.md
Справочные материалы документа
Откройте основной материал или другой файл документа как ссылочный источник.