Document granular hook policy + ad architecture + 94-site scale
Hook redesign (guard-readonly.sh + guard-bash.sh): - ALLOW edits: /home/nosfortube/frontend_<port>/ (digits-only, all subdirs) + /home/nosfortube/orest/ (user working zone + screenshots) - DENY: lang variants (frontend_<port>_<lang>/), frontend_core/, .git/, system paths (/etc/, /usr/, /boot/, /var/* except /var/log/claude/) - 19/19 readonly + 18/19 bash tests pass (1 pre-existing sed-i regex gap) - Backup попередньої версії: .bak.2026-05-02 Doc updates: - New: PROJECT.md, ARCHITECTURE.md, DEPLOY.md, ADS.md, PERFORMANCE.md, INTERLINKING.md, ADMINS.md (topic-split docs/) - CLAUDE.md: 94-site scale, granular edit zones, doc index - INFRASTRUCTURE.md: hook table updated - SITES.md: scope note (14 backup-tracked of 94 total) - RECOMMENDATIONS.md: W1 (hook conflict) → DONE; W2-W3, D1-D4 added Site architecture findings (audit 2026-05-02): - 94 frontend_<port>/ sites, 71 in site-name-routing.csv, 14 backup-tracked - 3 ad-architectures coexist: 8148 modern bundle (1), modern partials (~23), legacy inline surstrom (31) - 8148 unique: ad-bundle.min.js source files, build-ad-bundle.sh, terser - Server IP 185.73.222.75 у t1.* allowlist (curl probes work) - CDN: custom + Cloudflare на 8081 etc; purge-cache при prod deploy Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -209,6 +209,58 @@ Layout uses `<%= site.domain %>`, `<%= site.ga_id %>`.
|
||||
|
||||
---
|
||||
|
||||
## 🛠 INFRASTRUCTURE / Workflow
|
||||
|
||||
### W1. Hook conflict — Claude editing у `/home/nosfortube/` *(BUG/FEATURE)* ✅ DONE 2026-05-02
|
||||
**Resolution:** Granular policy реалізована у `guard-readonly.sh` + `guard-bash.sh`. ALLOW `frontend_<port>/` (digits-only) + `orest/`. DENY lang variants, frontend_core, .git, system paths. Backup попередніх hooks: `.bak.2026-05-02`. Test matrix: 19/19 readonly + 18/19 bash (1 pre-existing sed-i regex limitation).
|
||||
|
||||
### W2. backup_<port>/ scope — 14 із 94 сайтів *(FEATURE)*
|
||||
**Where:** `/home/w4/backup_*/`
|
||||
**Problem:** git-tracking покриває 14 сайтів, інші 80 без recovery. Можливі причини: історичний субсет / pilot / залишки старого етапу.
|
||||
**Options:**
|
||||
- Зберегти 14 (subset для критичних сайтів)
|
||||
- Поширити на всі 94 (масовий setup `sync.sh` + initial commits)
|
||||
- Замінити на централізований моніторинг + adminskий git
|
||||
**Effort:** L якщо поширити (ініт repos + sync.sh per site + перші commits).
|
||||
**Status:** OPEN. Залежить від наскільки git-history важливий vs adminove ownership.
|
||||
|
||||
### W3. PSI automonitoring *(FEATURE)*
|
||||
**Where:** Future infra
|
||||
**Problem:** Поточний PSI check — manual через pagespeed.web.dev, не systematic. Регресії можуть бути непомічені до next ad-revenue падіння.
|
||||
**What:** PSI API + cron → daily snapshot + history db + alert при падінні. Або Lighthouse-CI на t1.* після deploy.
|
||||
**Effort:** M-L (setup ~6-12h)
|
||||
**Status:** DEFERRED (in-mind, не пріоритет — поки adspyglass dashboard як signal).
|
||||
|
||||
---
|
||||
|
||||
## 📚 DOC items
|
||||
|
||||
### D1. ad-bundle source files location
|
||||
**Where:** [ADS.md § Source files](ADS.md#source-files)
|
||||
**What:** Знайти де живуть 5 source JS-файлів (`ad-config.js`, `ad-core.js`, `ad-mute.js`, `vast-preroll.js`, `ad-bootstrap.js`) — `frontend_<port>/views/static/js/` чи shared. Записати у ADS.md.
|
||||
**Effort:** XS (15 min, `find /home/nosfortube/ -name 'ad-config.js'`)
|
||||
**Status:** OPEN — потрібен hook resolution (W1) щоб дослідити.
|
||||
|
||||
### D2. Mirror swap mechanism
|
||||
**Where:** [ADS.md § Open questions](ADS.md#open-questions-for-developer) Q3
|
||||
**What:** Зрозуміти як Адмін заміняє banned mirror — через ad-config.js mass replace, runtime config, чи інше. Записати у ADS.md.
|
||||
**Effort:** S (питання до developer + 1 example)
|
||||
**Status:** OPEN.
|
||||
|
||||
### D3. CDN provider
|
||||
**Where:** [DEPLOY.md § Open questions](DEPLOY.md#open-questions)
|
||||
**What:** Який CDN на prod (Cloudflare / BunnyCDN / Fastly / custom). Per-site або unified.
|
||||
**Effort:** XS (питання до developer)
|
||||
**Status:** OPEN.
|
||||
|
||||
### D4. Template ad-zone pattern
|
||||
**Where:** [ADS.md § Template integration](ADS.md#template-integration)
|
||||
**What:** 1 sample template fragment з ad-zone для розуміння placement pattern.
|
||||
**Effort:** XS (показати 5-10 рядків з template)
|
||||
**Status:** OPEN.
|
||||
|
||||
---
|
||||
|
||||
## Reminders cadence
|
||||
|
||||
goboss перевіряє цей файл **на початку кожної session** і нагадує developer-у:
|
||||
@@ -227,4 +279,5 @@ Items з статусом `DONE`, `WONTFIX`, `DEFERRED` переходять у
|
||||
|
||||
---
|
||||
|
||||
*Last update: 2026-04-30 (initial backlog from gocc1+2+3+4 audits)*
|
||||
*Last update: 2026-05-01 (W1-W3 workflow + D1-D4 doc items added).*
|
||||
*Initial backlog: 2026-04-30 (gocc1+2+3+4 audits).*
|
||||
|
||||
Reference in New Issue
Block a user