- INFRASTRUCTURE.md: bin/, scripts/, comms/, hooks/, settings, sessions, memory layout, cheatsheet - CLAUDE.md: meta-rule 'if search >5min update docs' + INFRASTRUCTURE.md у doc index
6.6 KiB
tubev
Multi-site adult tube infrastructure — frontend-only scope (templates / CSS / JS). Backend (OpenResty + Lua) — у розробника, не в нашому доступі.
Repo
- Origin:
git@gdev.hserver.cloud:ovtube/vtube.git - goboss checkout:
/home/w4/goboss/tubev/ - Bot worktrees:
/home/w4/<bot>/tubev/(gocc1-4) - Branch:
main - Push policy: goboss пушить immediately after commit (default). Боти комітять локально → write report → goboss робить review + push. Винятки (multi-step refactor у процесі / diff >50 LOC / WIP) — у docs/GIT_WORKFLOW.md § When to push
Сайти (live, prod source)
14 портів у /home/w4/backup_<port>/ (mirror з /home/nosfortube/frontend_<port>/). Повна таблиця: docs/SITES.md.
Stack
- Templates: etlua (Lua templating, OpenResty environment)
- CSS: критичний inline
views/css/css_*.etlua+ deferredstatic/css/ - JS:
static/js/{c2, auth, comment, profile_index, main, ...}.{js,min.js} - Video player:
static/videojs-v10/
Workflow (де що правити)
- Edit:
~/backup_<port>/views/(наша зона; кожен порт = окремий git repo) - Sync:
~/backup_<port>/sync.shкопіює з prod (/home/nosfortube/frontend_<port>/) → backup. Деталі: docs/SYNC_WORKFLOW.md - Push to prod: через git remote → developer-side. goboss НЕ пушить, тільки локальні коміти у власному worktree
/home/nosfortube/— це prod, читати можна, писати — НІКОЛИ
Команди
~/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_<port>/
Команда (ролі ботів)
| Бот | 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/ | Workflow rules: 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.
Recommendations not plans
Виявлені refactor/security/cleanup candidates → docs/RECOMMENDATIONS.md як рекомендації, не план. Робимо ТІЛЬКИ коли розробник скаже. goboss періодично нагадує про unprocessed items.
No hardcodes у нових патчах
Перш ніж писати літерал (URL, домен, GA ID, magic number) — grep чи вже є у views/config/ чи аналогічному місці. Існує — import/include. Нема — додай як параметр у views/config/site.lua (якщо буде створено) і потім use.
Docs upkeep — meta-rule
Якщо ти витратив >5 хвилин шукаючи інформацію про інфраструктуру / команди / шляхи / hooks / scripts — це signal що документація не покриває цю area. Після того як знайшов відповідь:
- Додай знайдену інформацію у відповідний doc файл (як правило
docs/INFRASTRUCTURE.mdдля systemic / Operational, інше — у domain doc) - Додай пункт у docs/RECOMMENDATIONS.md як D# (DOC) item якщо потрібен ширший update
- Не дай наступним сесіям повторити пошук
Doc Index
| Файл | Призначення |
|---|---|
| docs/INFRASTRUCTURE.md | Мапа /home/w4/: bin, scripts, comms, hooks, sessions, memory + cheatsheet |
| docs/GIT_WORKFLOW.md | Repo vtube, push process, bot commits → goboss push |
| docs/SITES.md | Таблиця 14 портів × домен × cluster × outlier flags |
| docs/SYNC_WORKFLOW.md | Як sync.sh у backup_/ працює, 2 парадигми |
| docs/MODULES.md | Карта views/modules/*.etlua × presence × DEL_/test/deprecated flags |
| docs/REFACTOR_RULES.md | Що таке REFACTOR vs CLEANUP vs BUG vs FEATURE |
| docs/RECOMMENDATIONS.md | Backlog refactor/cleanup/security candidates як рекомендації |
| docs/BOT_WORKFLOW.md | Bot dispatch + reporting + escalation rules |
| 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