simbiot-harness/artifacts/shkor/gen_legal_pages.py

250 lines
17 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""Генератор юр-страниц Shkor beauty (t-261008154151-faa550).
Privacy Policy / Terms of Service / Cookie & Disclaimer / About & Contacts.
Единый шаблон = тот же визуальный язык, что у витрины. Оператор сервиса:
Shkor Labs LLC (Wyoming, USA), alex.shkor@gmail.com.
"""
from pathlib import Path
OUT = Path("/var/www/beauty")
OUT.mkdir(parents=True, exist_ok=True)
CSS = """
:root{--ink:#1c1a17;--paper:#faf7f2;--line:#e4ddd2;--acc:#0e7a5f;--muted:#6f6a61;
--sans:"Segoe UI",-apple-system,Arial,sans-serif;--mono:ui-monospace,Menlo,Consolas,monospace}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.65;font-size:16px}
.wrap{max-width:820px;margin:0 auto;padding:0 20px}
header{border-bottom:1px solid var(--line);background:#fff}
.hbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.logo{font-size:20px;font-weight:700}
.logo span{color:var(--acc)}
.logo small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
nav a{margin-left:16px;font-size:14px;color:var(--muted)}
nav a:hover{color:var(--acc)}
main{padding:40px 0 60px}
h1{font-size:clamp(26px,4vw,36px);letter-spacing:-.02em;margin-bottom:6px}
.meta{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:28px}
h2{font-size:19px;margin:28px 0 10px}
p,li{color:#3d3a34;margin-bottom:10px}
ul{padding-left:22px}
a{color:var(--acc)}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;margin-top:24px}
footer{padding:26px 0 40px;border-top:1px solid var(--line);color:var(--muted);font-size:13.5px}
footer .links{display:flex;gap:18px;margin-bottom:8px}
footer .links a{text-decoration:underline;color:var(--muted)}
footer .proto{font-family:var(--mono);font-size:12px;margin-top:6px}
"""
def page(slug: str, title: str, updated: str, body: str) -> None:
html = f"""<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{title} — Shkor beauty</title>
<meta name="description" content="{title} сервиса Shkor beauty. Оператор: Shkor Labs LLC.">
<style>{CSS}</style>
</head>
<body>
<header>
<div class="wrap hbar">
<a class="logo" href="/">Shkor <span>beauty</span><small>корейская косметика · Минск</small></a>
<nav>
<a href="/#catalog">Каталог</a><a href="/#plans">Магазинам</a><a href="/#request">Заявка</a>
</nav>
</div>
</header>
<main class="wrap">
<h1>{title}</h1>
<div class="meta">Last updated: {updated} · v1.0 · Operator: Shkor Labs LLC (Wyoming, USA)</div>
{body}
</main>
<footer>
<div class="wrap">
<div class="links">
<a href="/privacy.html">Privacy Policy</a>
<a href="/terms.html">Terms of Service</a>
<a href="/disclaimer.html">Disclaimer</a>
<a href="/about.html">About &amp; Contacts</a>
</div>
<div>Оператор сервиса: <b>Shkor Labs LLC</b> (Wyoming, USA) · <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a></div>
<div class="proto">собрано харнесом Simbiot · кооператив 42 · cil.by</div>
</div>
</footer>
</body>
</html>"""
(OUT / f"{slug}.html").write_text(html, encoding="utf-8")
print("ok", OUT / f"{slug}.html")
D = "2026-10-08"
page("privacy", "Privacy Policy", D, """
<p>Настоящая Политика конфиденциальности объясняет, какие данные собирает сервис Shkor beauty
(далее — «Сервис») и как они используются. Оператор Сервиса — <b>Shkor Labs LLC</b>, компания,
зарегистрированная в штате Вайоминг, США (далее — «Оператор»). Контакт: <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>.</p>
<h2>1. Какие данные мы собираем</h2>
<ul>
<li><b>Заявка (Lite-план):</b> имя, телефон и текст заявки, которые вы сами указываете в форме «Оставить заявку».</li>
<li><b>Заказ (Full-план):</b> имя, телефон, адрес доставки и состав заказа.</li>
<li><b>Обращения:</b> письма на email Оператора и переписка в мессенджерах — в объёме, необходимом для ответа.</li>
<li><b>Технические данные:</b> анонимная статистика посещений (страницы-рефереры, устройство, страна) — без персональных идентификаторов.</li>
</ul>
<h2>2. Чего мы НЕ собираем</h2>
<ul>
<li>Данные банковских карт: при онлайн-оплате (Full-план) платёж проводит независимый платёжный агент;
данные карты вводятся на его защищённой странице и Оператору не передаются.</li>
<li>Фотографии кожи без явного согласия: если вы передаёте фотоотчёт AI-ассистенту, он обрабатывается
для анализа состояния кожи и не публикуется и не передаётся третьим лицам.</li>
</ul>
<h2>3. Зачем мы используем данные</h2>
<ul>
<li>связаться с вами по заявке и довести её до результата (подбор, заказ, доставка);</li>
<li>исполнить заказ и уведомлять о его статусе;</li>
<li>улучшать каталог и подбор ассистента на обезличенной статистике.</li>
</ul>
<h2>4. Хранение и срок</h2>
<p>Записи заявок и заказов хранятся в защищённой базе Оператора не дольше, чем это необходимо для
исполнения заказа и требований бухгалтерии (по умолчанию — до 3 лет), после чего удаляются или
обезличиваются.</p>
<h2>5. Передача третьим лицам</h2>
<p>Данные передаются только: (а) службе доставки — имя, телефон и адрес вашего заказа;
(б) платёжному агенту — минимально необходимый платёжный контекст; (в) в случаях, предусмотренных законом.</p>
<h2>6. Cookie</h2>
<p>Сервис использует минимальные cookie и локальное хранилище: сессия корзины и анонимная статистика.
Подробнее — в <a href="/disclaimer.html">Disclaimer</a>.</p>
<h2>7. Ваши права</h2>
<p>Вы можете запросить доступ к своим данным, их исправление или удаление письмом на
<a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>. Мы отвечаем в течение 30 дней.</p>
<h2>8. Изменения</h2>
<p>Актуальная версия Политики всегда доступна на этой странице; существенные изменения датируются выше.</p>
""")
page("terms", "Terms of Service", D, """
<p>Условия использования сервиса Shkor beauty (далее — «Условия»). Оператор Сервиса — <b>Shkor Labs LLC</b>
(Wyoming, USA), контакт <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>. Используя Сервис,
вы соглашаетесь с настоящими Условиями.</p>
<h2>1. Что такое Сервис</h2>
<p>Shkor beauty — витрина корейской косметики с AI-ассистентом: подбор ухода, заявки и заказы с доставкой
по Минску и Беларуси. Сервис предлагается в двух планах:</p>
<ul>
<li><b>Lite (базовый):</b> витрина + форма заявки. Заявка фиксируется в общей базе заказов, после чего
магазин связывается с вами лично для уточнения ассортимента, цены и способа расчёта.</li>
<li><b>Full:</b> полный каталог, корзина, онлайн-оплата и статусы доставки.</li>
</ul>
<h2>2. Заявки и заказы</h2>
<ul>
<li>Заявка (Lite) не является подтверждённой сделкой: цена и наличие подтверждаются при обратной связи.</li>
<li>Заказ (Full) считается принятым после подтверждения оплаты или согласия на оплату при получении.</li>
<li>Цены указаны в белорусских рублях (BYN) и могут меняться; актуальная цена — на витрине в момент заказа.</li>
</ul>
<h2>3. Доставка</h2>
<p>Курьер по Минску, Европочта по Беларуси и самовывоз. Сроки и стоимость показываются при оформлении
заявки/заказа; бесплатная доставка — от 80 BYN по каталогу витрины.</p>
<h2>4. Возврат и обмен</h2>
<ul>
<li>Товар надлежащего качества (без следов использования, в оригинальной упаковке) — возврат/обмен
в течение 14 дней с момента получения.</li>
<li>Средства гигиены и косметика с нарушенной упаковкой возврату не подлежат.</li>
<li>Для возврата напишите на <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a> с номером заказа.</li>
</ul>
<h2>5. Интеллектуальная собственность</h2>
<p>Материалы витрины, AI-подбор и программный код ассистента принадлежат Оператору. Товарные знаки
брендов принадлежат их правообладателям.</p>
<h2>6. Ограничение ответственности</h2>
<p>Сервис предоставляется «как есть». AI-подбор средств — рекомендательный характер и не является
медицинской консультацией (см. <a href="/disclaimer.html">Disclaimer</a>). Оператор не несёт
ответственности за индивидуальные реакции кожи и решения, принятые на основе рекомендаций без
ознакомления с составами и инструкциями.</p>
<h2>7. Применимое право</h2>
<p>Настоящие Условия регулируются правом, применимым к месту регистрации Оператора (Wyoming, USA),
без ущерба для обязательных потребительских прав покупателей по законодательству места доставки.</p>
""")
page("disclaimer", "Cookie &amp; Disclaimer", D, """
<p>Страница объединяет политику cookie и важные дисклеймеры сервиса Shkor beauty. Оператор —
<b>Shkor Labs LLC</b> (Wyoming, USA), <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>.</p>
<h2>1. Не медицинская консультация</h2>
<div class="card">
<p><b>AI-ассистент и материалы витрины НЕ являются медицинской консультацией, диагностикой или лечением.</b>
Подбор средств — эвристическая рекомендация на основе вашего самоотчёта. Она не заменяет консультацию
дерматолога или врача. При заболеваниях кожи, беременности, приёме лекарственных средств и выраженных
реакциях — проконсультируйтесь со специалистом до применения средств.</p>
</div>
<h2>2. Косметика и индивидуальные реакции</h2>
<ul>
<li>Перед первым применением сделайте тест на чувствительность (небольшой участок кожи, 24–48 часов).</li>
<li>Активы (ретинол, кислоты, витамин C) вводите постепенно; ретинол — только на ночь, SPF утром обязателен.</li>
<li>Ознакомьтесь с составом на упаковке: при аллергии на компонент средство не используйте.</li>
</ul>
<h2>3. Cookie</h2>
<ul>
<li><b>Необходимые:</b> сессия корзины и защита форм. Не отключаются.</li>
<li><b>Аналитические:</b> анонимная статистика посещений для улучшения витрины. Без персональных идентификаторов и без передачи рекламным сетям.</li>
<li><b>Рекламных и трекинговых cookie сторонних сетей — нет.</b></li>
</ul>
<p>Большинство браузеров позволяет управлять cookie в настройках; отключение необходимых cookie
может сломать корзину и отправку заявки.</p>
<h2>4. Внешние ссылки</h2>
<p>Витрина может ссылаться на сайты брендов и службы доставки — за их содержание Оператор
ответственности не несёт.</p>
<h2>5. Вопросы</h2>
<p>Любые вопросы по дисклеймерам и cookie — <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>.</p>
""")
page("about", "About &amp; Contacts", D, """
<p><b>Shkor beauty</b> — AI-ассистент для магазинов корейской косметики: витрина, которая сама
разбирает состояние кожи клиента, собирает рутину и доводит заявку до заказа.</p>
<h2>Кто мы</h2>
<p>Оператор сервиса — <b>Shkor Labs LLC</b>, компания, зарегистрированная в штате Вайоминг, США.
Проект развивается совместно с инженерным кооперативом «42» (cil.by): витрина и ассистент собраны
ритмичным агентом Simbiot.</p>
<h2>Что мы делаем</h2>
<ul>
<li><b>Витрина K-beauty:</b> каталог проверенных брендов — Anua, Beauty of Joseon, JMsolution,
SKIN627, Biodance и другие, доставка по Минску и Беларуси.</li>
<li><b>AI beauty-ассистент (B2B):</b> агентный API analyze → recommend → order, который любой
магазин или AI-агент может подключить к своему сайту (MCP/STDIO, HTTP, CLI).</li>
<li><b>Два плана подключения:</b> <b>Lite</b> — витрина + заявки в общую базу; <b>Full</b> — полный
каталог, корзина, онлайн-оплата и статусы доставки.</li>
</ul>
<h2>Контакты</h2>
<div class="card">
<ul>
<li>Email: <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a></li>
<li>Заявка: форма на <a href="/#request">главной странице</a> — ответим в течение дня</li>
<li>Юрлицо-оператор: Shkor Labs LLC (Wyoming, USA)</li>
</ul>
</div>
<h2>Магазинам: подключение ассистента</h2>
<p>Ассистент подключается к любому сайту или AI-агенту за один шаг: JSONL поверх STDIO (MCP-стиль),
HTTP JSON API или разовый CLI-вызов. Каталог масштабируется без правок кода. Для пилота напишите
на email — подключим витрину с формой заявок (Lite) и покажем e2e-сценарий заказа.</p>
""")