# tubev — Infrastructure Map Швидкий lookup того, що де лежить у `/home/w4/`. ## Top-level (`/home/w4/`) ``` /home/w4/ ├── .claude/ # Claude Code config (settings, hooks, projects) ├── .bashrc # alias ll/la/l + PATH=$HOME/bin ├── .tmux.conf # tmux config ├── bin/ # PATH scripts (launchers + bot management) ├── scripts/ # bot communication scripts (flock-serialized) ├── comms/ # bot ↔ goboss channel (task / report files) ├── start-devs.sh # bulk launcher (boss/gocc/goorest/all) ├── git-save-all.sh # commit-and-push helper ├── goboss/ # goboss workspace │ └── tubev/ # ← OUR repo (git@gdev.hserver.cloud:ovtube/vtube.git) ├── gocc1/tubev/ # gocc1 worktree (own clone) ├── gocc2/tubev/ # gocc2 worktree ├── gocc3/tubev/ # gocc3 worktree ├── gocc4/tubev/ # gocc4 worktree ├── backup_/ # 14 prod-mirror dirs (8081, 8084, ..., 8148) └── *.md # legacy admin1-era docs (read-only, не наші) ``` `/home/admin1` — symlink → `/home/w4/`. Старі скрипти референсять `/home/admin1/...`, працює прозоро. ## `~/bin/` — PATH scripts | Script | Призначення | |--------|-------------| | `goboss` | Launcher tmux session goboss → CWD `~/goboss` | | `gocc1` ... `gocc4` | Launcher tmux sessions для ботів → CWD `~/gocc{N}/tubev` | | `goorest1`, `goorest2`, `goorest3` | (опціонально, не tubev — інший проект) | | `clear-bots [bot...]` | `/clear` для всіх gocc1-4 (topic switch) | | `trigger-bots [bot...]` | Auto-pull + signal новий task через `~/scripts/trigger_bot.sh` (flock + idle-wait + verify). Стандартний dispatch. Лог: `/tmp/trigger_bot.log`. | | `restart-bots [bot...]` | kill+start+wait+trigger. Для зависів/нових проектів. | | `deploy-admin-orest.sh` | (опціонально, інший проект) | | `ad-test [url1 ...]` | Headless ad-flow regression test (Playwright + Chromium). 6 checks per URL. Default — 3 URLs з 8148. Деталі: [docs/ADS.md § Automated regression test](ADS.md#%EF%B8%8F-automated-regression-test--ad-test). | ## `~/scripts/` — bot communication | Script | Що робить | |--------|-----------| | `send_to_goboss.sh ""` | Bot → goboss. Flock-serialized. Stable-idle wait + paste-buffer + dual-Enter + verify. | | `trigger_bot.sh ""` | goboss → bot. Така ж надійність delivery. | **Не використовувати raw `tmux send-keys` для quoted text** — guard-bash.sh блокує (Enter sometimes dropped). ## `~/comms/` — bot ↔ goboss channel | File | Direction | |------|-----------| | `gocc{N}-task.md` | goboss → bot (goboss пише, bot читає) | | `gocc{N}-report.md` | bot → goboss (bot Write tool, hook auto-signals) | При normal operation у comms/ тільки 8 файлів (4 task + 4 report). Все інше — проблема (treba clean). ## `~/.claude/hooks/` — Claude Code hooks | Hook | Event | Що робить | |------|-------|-----------| | `guard-bash.sh` | PreToolUse:Bash | Granular block: rm/write до `/home/nosfortube/` поза edit zone (`orest/`, `frontend_/`); rm на system paths; git push для bots; raw tmux send-keys без bot prefix. Backup: `.bak.2026-05-02` | | `guard-readonly.sh` | PreToolUse:Edit\|Write | Granular: ALLOW `/home/nosfortube/frontend_/`, `/home/nosfortube/orest/`. DENY: `frontend__/`, `frontend_core/`, `.git/`, system paths (`/etc/`, `/var/*`, etc.). Backup: `.bak.2026-05-02` | | `auto-signal-goboss.sh` | PostToolUse:Write\|Bash | Auto-signal `gocc{N}: done` коли bot пише `~/comms/-report.md` | | `check-inbox.sh` | (опційний) | Periodic inbox check | | `telegram-notify.sh` | Stop | TG completion ping | | `guard-readonly.sh.disabled` | (disabled backup) | старіша версія, не активна | Конфігурація: `~/.claude/settings.json` секція `hooks`. ## `~/.claude/projects/` — per-project memory | Slug | Owner | |------|-------| | `-home-w4-goboss/memory/` | goboss (single source of truth) | | `-home-w4-gocc{1-4}-tubev/memory/` | symlink → `-home-w4-goboss/memory/` (shared) | Auto-determined by Claude Code based on cwd → slug. Якщо bot CWD змінюється → з'являється новий slug; якщо потрібен shared memory — додай symlink. `MEMORY.md` у memory/ — auto-loaded в context (індекс). ## `~/.claude/settings.json` (ключове) ```json { "permissions": { "allow": ["Bash(*)", "Read(*)", "Edit(*)", "Write(*)", ...], "additionalDirectories": ["/home/w4/goboss", "/home/w4/comms", "/tmp"] }, "hooks": { "PreToolUse": [ {"matcher": "Edit|Write", "command": "/home/admin1/.claude/hooks/guard-readonly.sh"}, {"matcher": "Bash", "command": "/home/admin1/.claude/hooks/guard-bash.sh"} ], "PostToolUse": [ {"matcher": "Write|Bash", "command": "/home/admin1/.claude/hooks/auto-signal-goboss.sh"} ] } } ``` `/home/admin1/...` працює через symlink → `/home/w4/...`. ## `~/start-devs.sh` — bulk launcher ```bash ~/start-devs.sh boss # тільки goboss ~/start-devs.sh gocc # gocc1-4 ~/start-devs.sh goorest # (інший проект) ~/start-devs.sh all # все ``` Skipує already-running sessions. ## `~/.bashrc` — environment - `PATH=$HOME/bin:$PATH` — saves typing `~/bin/