# tubev Multi-site adult tube infrastructure — **frontend-only** scope (templates / CSS / JS). Backend (OpenResty + Lua) — у розробника, не в нашому доступі. ## Сайти 14 портів у `/home/w4/backup_/`. Повна таблиця: **[docs/SITES.md](docs/SITES.md)**. ## Stack - Templates: **etlua** (Lua templating, OpenResty environment) - CSS: критичний inline `views/css/css_*.etlua` + deferred `static/css/` - JS: `static/js/{c2, auth, comment, profile_index, main, ...}.{js,min.js}` - Video player: `static/videojs-v10/` ## Workflow (де що правити) 1. **Edit:** `~/backup_/views/` (наша зона; кожен порт = окремий git repo) 2. **Sync:** `~/backup_/sync.sh` копіює з prod (`/home/nosfortube/frontend_/`) → backup. Деталі: **[docs/SYNC_WORKFLOW.md](docs/SYNC_WORKFLOW.md)** 3. **Push to prod:** через git remote → developer-side. **goboss НЕ пушить**, тільки локальні коміти у власному worktree 4. **`/home/nosfortube/`** — це prod, читати можна, **писати — НІКОЛИ** ## Команди ```bash ~/start-devs.sh boss # старт goboss ~/start-devs.sh gocc # старт gocc1-4 ~/bin/trigger-bots [gocc{N}] # тригер нової task ~/bin/restart-bots [gocc{N}] # повний reset (kill+start+wait+trigger) ~/bin/clear-bots [gocc{N}] # /clear context (topic switch) git pull --rebase # ЗАВЖДИ перед роботою у backup_/ ``` ## Команда (ролі ботів) | Бот | Tool access | Domain | |-----|-------------|--------| | **goboss** | All | Planner + dispatch (не push до prod, тільки local commits) | | **gocc1** | Read-only | Code audit + regression | | **gocc2** | Read-only | Test gap + endpoint smoke | | **gocc3** | Edit/Write/commit (no push) | Frontend writer (templates/CSS/UI) | | **gocc4** | Edit/Write/commit (no push) | Architect/refactor (services/lib/scripts) | **2 read-only + 2 writer** — read-only safety net, писателі паралельно. Деталі: **[docs/roles/](docs/roles/)** | Workflow rules: **[docs/BOT_WORKFLOW.md](docs/BOT_WORKFLOW.md)** ## Правила (КРИТИЧНІ) ### No make-work **НЕ давати ботам задачі з пустого в порожнє.** Кожен dispatch має конкретну причину: новий audit area, conkretne виявлений bug, follow-up з reportу. Якщо нема такої причини — bot пише `[bot] Чекаю.` і чекає. Cross-audit / regression test / research **тільки коли є concrete trigger**. ### No-touch zones - `/home/nosfortube/` — production source, READ ONLY - `/etc/nginx/`, `/var/www/` — server configs, поза scope - Backend Lua код розробника — нема доступу ### Refactor vs Cleanup vs Bug-fix vs Feature Чітко розрізняти. Деталі: **[docs/REFACTOR_RULES.md](docs/REFACTOR_RULES.md)**. ### Recommendations not plans Виявлені refactor/security/cleanup candidates → **[docs/RECOMMENDATIONS.md](docs/RECOMMENDATIONS.md)** як **рекомендації**, не план. Робимо ТІЛЬКИ коли розробник скаже. goboss періодично нагадує про unprocessed items. ### No hardcodes у нових патчах Перш ніж писати літерал (URL, домен, GA ID, magic number) — `grep` чи вже є у `views/config/` чи аналогічному місці. Існує — import/include. Нема — додай як параметр у `views/config/site.lua` (якщо буде створено) і потім use. ## Doc Index | Файл | Призначення | |------|-------------| | **[docs/SITES.md](docs/SITES.md)** | Таблиця 14 портів × домен × cluster × outlier flags | | **[docs/SYNC_WORKFLOW.md](docs/SYNC_WORKFLOW.md)** | Як sync.sh працює, 2 парадигми, як додати порт | | **[docs/MODULES.md](docs/MODULES.md)** | Карта `views/modules/*.etlua` × presence × DEL_/test/deprecated flags | | **[docs/REFACTOR_RULES.md](docs/REFACTOR_RULES.md)** | Що таке REFACTOR vs CLEANUP vs BUG vs FEATURE | | **[docs/RECOMMENDATIONS.md](docs/RECOMMENDATIONS.md)** | Backlog refactor/cleanup/security candidates як рекомендації | | **[docs/BOT_WORKFLOW.md](docs/BOT_WORKFLOW.md)** | Bot dispatch + reporting + escalation rules | | **[docs/roles/](docs/roles/)** | Ролі gocc1-4 | Файли наповнюємо/оновлюємо по мірі знахідок. CLAUDE.md = тонкий entry-point + index. ## Communication - Українською, коротко, по суті - Боти приймають **ТІЛЬКИ від `goboss:`** - TIMESTAMP формат: `[bot YYYY-MM-DD HH:MM] Task ID: XXX` - Task vs Report Task ID порівнюються **рядково**, не по змісту - Signal через PostToolUse hook автоматично після Write `~/comms/{bot}-report.md`