Files
vtube/CLAUDE.md

9.4 KiB
Raw Permalink Blame History

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)

  • 94 сайти у /home/nosfortube/frontend_<port>/ — source-of-truth, тут редагуємо
  • 71 site→port mapping у /home/nosfortube/orest/site-name-routing.csv
  • 14 backup_/ у /home/w4/ — git-archive subset (не всі сайти)

Повний контекст: docs/PROJECT.md | Folder map: docs/ARCHITECTURE.md | Site table: 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: /home/nosfortube/frontend_<port>/views/ напряму — це single source of truth test-середовища
  2. Test: t1.<domain> миттєво (server IP 185.73.222.75 у allowlist — Claude може робити curl probes)
  3. Git snapshot (rollback): ~/git-save-all.sh "msg" — sync prod → backup_/, auto-rebuild ad-bundle (тільки 8148), cache-bust md5, commit. Local git, без remote, без laptop-clone. Деталі: docs/DEPLOY.md § git-save-all.sh
  4. Prod deploy: ти через https://rss.g--o.info/admin/site/control (per-site button). Або через Адміна (для var.lua / нових файлів)

Команди

~/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.

Edit zones (granular, через hook guard-readonly.sh + guard-bash.sh)

ALLOW:

  • /home/nosfortube/frontend_<port>/... — наша робоча зона (port = digits only, без lang suffix)
    • views/ — основне (templates, CSS, per-site JS)
    • views/static/js/lib/, lib2/shared cross-site, правки тільки коли треба фікс на ВСІ сайти (рідко, при виявленні bug-у)
    • lib/<port>/var.lua — config, потребує kor reboot через Адміна (рідко)
  • /home/nosfortube/orest/... — юзерова робоча зона (тестові скрипти, тимчасові плани, screenshots)

DENY:

  • /home/nosfortube/frontend_<port>_<lang>/ — language variants (_hi, _id — deprecated, не вживаються)
  • /home/nosfortube/frontend_core/ — core, ніколи не правимо
  • /home/nosfortube/.git/, інше top-level — поза scope
  • /etc/, /usr/, /boot/, /sbin/, /var/* (крім /var/log/claude/) — system

Деплой у prod — НЕ Claude. Юзер натискає button у admin panel. Claude тільки edit + commit (через git-save-all.sh).

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. Після того як знайшов відповідь:

  1. Додай знайдену інформацію у відповідний doc файл (як правило docs/INFRASTRUCTURE.md для systemic / Operational, інше — у domain doc)
  2. Додай пункт у docs/RECOMMENDATIONS.md як D# (DOC) item якщо потрібен ширший update
  3. Не дай наступним сесіям повторити пошук

Doc Index

Domain knowledge (як проект влаштований):

Файл Призначення
docs/PROJECT.md Business model, scope, 94 сайти, tech model overview
docs/ARCHITECTURE.md Per-site folder map: views/, static/, lib//var.lua, shared lib/lib2
docs/SITES.md Таблиця 14 backup-tracked ports × домен × cluster × outlier flags
docs/DEPLOY.md Test t1.* ↔ prod flow, admin role, kor reload, cache-bust
docs/ADS.md adspyglass інтеграція (skeleton — наповнюємо)
docs/MIGRATION_PLAYBOOK.md Discovery-driven план для migration наступного site (player / banners / sidebar / CSS) з conditional branches
docs/PERFORMANCE.md PSI targets, rules, per-site scorecard (skeleton)
docs/INTERLINKING.md Cross-site linking strategy (skeleton)
docs/ADMINS.md Admin panels: translations, comments, site config (skeleton)
docs/MODULES.md Карта views/modules/*.etlua × presence × DEL_/test/deprecated flags
docs/SYNC_WORKFLOW.md Як sync.sh у backup_/ працює, 2 парадигми

Ops / meta (як ми працюємо):

Файл Призначення
docs/ONBOARDING.md Для юзера — що Claude auto-loads, відкриті питання до developer, як давати команди
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/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