bablo / стройплощадка
← Все сессии
Дата: 2026-05-19
Часов: 2
Кто: roman

Стройплощадка — Phase 0 / Эпик F2

Сборка публичного сайта-Стройплощадки на Astro: контент-движок, страницы, безопасная фильтрация. Выполнено Claude Code под надзором Романа.

Что сделано

  • Подняты зависимости transparency/ (Astro 4, npm 379 пакетов), сгенерирован package-lock.json для воспроизводимого npm ci в Dockerfile.
  • infra/scripts/extract-client-questions.mjs — whitelist-извлечение из OPEN_QUESTIONS.md только клиентского раздела и истории закрытых вопросов.
  • build-transparency.sh сделан fail-closed: при ошибке извлечения билд останавливается, а не публикует сырой OPEN_QUESTIONS.md.
  • src/lib/content.js — чтение документов/work-logs/вопросов/финансов, парсинг frontmatter, рендер markdown.
  • Страницы: главная, /docs (+ страница каждого документа), /worklogs (+ страница каждой сессии), /questions, /finance (SVG-график накопленных расходов, таблица записей, ставки с пометкой «−30% от рынка»).
  • Исправлен баг валидатора expenses (ловил son: внутри person:).
  • Сборка проверена: 12 страниц, контент рендерится, утечки внутреннего раздела «Для команды» нет (проверка на собранном HTML).

Решения

  • Фильтрация — whitelist, не blacklist. Публикуются только явно разрешённые секции; при изменении структуры файла билд падает, а не «протекает». Защита клиентских данных приоритетнее устойчивости билда.
  • Сгенерированный src/content/* не хранится в git. Источник правды — /docs, /work-logs, /OPEN_QUESTIONS.md, /expenses.yaml; контент наполняет build-скрипт.
  • Деплой — локально на порт 3013, домен и Proxy Host в NPM — после решения открытого вопроса Q3 (домены).

Открытые вопросы

  • Визуальная проверка скриншотами не выполнена: headless Chromium не стартует в этой среде (политика sandbox/AppArmor). Рендер проверен на уровне собранного HTML. Полный визуальный QA — когда будет доступен браузер.
  • Домен Стройплощадки (Q3) — нужен для SITE_URL и Proxy Host в NPM.
  • GitVerse — по-прежнему ждём SSH-ключ/токен (см. work-log F1, ADR 0002).

Что дальше

  1. Поднять контейнер bablo-transparency локально (порт 3013), проверить.
  2. После решения Q3 — Proxy Host в NPM, HTTP-авторизация, URL Руслану.
  3. F3 — финансовая прозрачность (страница /finance уже сделана, остаётся связка work-log → expenses и проверка графика на реальных данных).

Расход часов

2 часа надзора Романа = 8 400 ₽ (ставка 4 200 ₽/час, на 30% ниже среднерыночной 6 000 ₽/час). Запись в expenses.yamlEXP-2026-05-19-003.