35c30ecce0
F-CORPUS: ключевые документы приёмки liderra.ru лежали untracked — мастер- хэндофф ссылался на отсутствующие в git файлы (битые ссылки в новом клоне). Закоммичены: R0–R5 + stepbystep ранбуки, хартия, prod-logic-map, эфир-хэндофф, imitation-checks-table, live-demo/ (эфир-плеер) + смежные specs/планы серий f1-card/phase1/televizor/g1/g2 (решение владельца — «корпус + смежные»). F-DELPROJ: пункт №15 checks-table → «удаление проекта со сделками запрещено (422), сделки целы» (было неточно «сделки сохранены», сверено по ProjectService::delete). Реестр находок: статусы F-DEPTRAC/F-CSV/F-REMIND/F-DELPROJ/F-CORPUS → закрыто. .gitleaks.toml: ранбуки приёмки добавлены в allowlist (синтетические тест- телефоны, та же категория что plans/specs/audits). live-demo HTML: stylelint --fix (#fff→#ffffff). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
98 lines
10 KiB
HTML
98 lines
10 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>ОТЧЁТ · PR1 · образец (живые скриншоты)</title>
|
||
<style>
|
||
:root{--teal:#0F6E56;--ivory:#F6F3EC;--noir:#012019;--amber:#caa23a;--ok:#1a9e74;--red:#e5484d;--ink:#15302a;--mut:#5d7771;}
|
||
*{box-sizing:border-box;} html,body{margin:0;}
|
||
body{background:var(--noir);color:var(--ivory);font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:13.5px;}
|
||
header{background:var(--teal);padding:11px 18px;display:flex;align-items:center;gap:12px;}
|
||
header h1{font-size:15px;margin:0;font-weight:600;}
|
||
.verd{margin-left:auto;background:#0a4f1f;color:#7dffb4;font-weight:800;padding:4px 13px;border-radius:13px;border:1px solid #1c7e44;font-size:13px;}
|
||
.sub{background:#0d6b4f;padding:9px 18px;font-size:13px;border-bottom:1px solid #19a079;}
|
||
.sub b{font-size:15px;}
|
||
.wrap{padding:16px 18px;max-width:1180px;}
|
||
.rule{background:#05241c;border:1px solid #14463a;border-radius:9px;padding:11px 14px;margin-bottom:16px;font-size:13px;color:#cfe9df;line-height:1.55;}
|
||
.rule b{color:#7ee0bd;}
|
||
.step{background:#06281f;border:1px solid var(--teal);border-radius:11px;margin-bottom:18px;overflow:hidden;}
|
||
.step>h2{margin:0;background:var(--teal);font-size:14px;padding:10px 14px;font-weight:700;display:flex;gap:10px;align-items:center;}
|
||
.step>h2 .ok{margin-left:auto;background:#0a4f1f;color:#7dffb4;font-weight:800;padding:2px 10px;border-radius:11px;font-size:12px;border:1px solid #1c7e44;}
|
||
.did{padding:10px 14px;font-size:13px;color:#d8f0e6;border-bottom:1px solid #0e3a2e;}
|
||
.did b{color:#7ee0bd;}
|
||
table.rep{width:100%;border-collapse:collapse;font-size:13px;}
|
||
table.rep th{background:#08312a;color:#9fe3c8;text-align:left;padding:8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #14463a;}
|
||
table.rep td{padding:10px 12px;border-bottom:1px solid #0e3a2e;vertical-align:top;line-height:1.5;}
|
||
table.rep .was{color:#c0b48a;} table.rep .exp{color:#bfe6d6;} table.rep .got{color:#eafff7;font-weight:600;}
|
||
.pill{display:inline-block;font-weight:800;font-size:11px;padding:2px 9px;border-radius:10px;white-space:nowrap;}
|
||
.pill.shot{background:#143a2e;color:#7ee0bd;border:1px solid #1c7e44;}
|
||
.pill.txt{background:#2c2a1a;color:#ffd766;border:1px solid #5a4f1a;}
|
||
.shots{display:flex;gap:14px;padding:14px;flex-wrap:wrap;align-items:stretch;}
|
||
.shotcard{flex:1 1 44%;min-width:300px;background:#0a3328;border:1px solid #15463a;border-radius:9px;overflow:hidden;display:flex;flex-direction:column;}
|
||
.shotcard .cap{display:flex;align-items:center;gap:8px;padding:8px 11px;font-size:12.5px;font-weight:700;background:#08312a;border-bottom:1px solid #14463a;}
|
||
.shotcard.before .cap{color:#c0b48a;} .shotcard.after .cap{color:#7ee0bd;}
|
||
.shotcard img{width:100%;display:block;background:#ffffff;}
|
||
.frame{padding:8px;}
|
||
.arrowrow{display:flex;align-items:center;justify-content:center;color:var(--amber);font-weight:800;font-size:24px;flex:0 0 26px;}
|
||
.inside{margin:12px 14px;background:#2a2410;border:1px solid #5a4f1a;border-radius:9px;padding:11px 13px;font-size:13px;color:#ffe9b8;line-height:1.55;}
|
||
.inside b{color:#ffd766;}
|
||
.inside .h{font-weight:800;color:#ffd766;display:flex;align-items:center;gap:7px;margin-bottom:4px;}
|
||
@media(max-width:820px){.shotcard{flex:1 1 100%}}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<h1>ОТЧЁТ ПРИЁМКИ · образец · ПУНКТ PR1 — завести клиента (самозапись)</h1>
|
||
<span class="verd">✅ СОШЛОСЬ</span>
|
||
</header>
|
||
<div class="sub"><b>Шаг 1 из плана</b> · регистрация клиента → подтверждение по коду → открытие кабинета с 300 ₽ · живой портал · 20.06.2026</div>
|
||
|
||
<div class="wrap">
|
||
<div class="rule">📸 <b>Скриншот</b> — для всего, что видно на экране (показываю «было» и «стало»). 💡 <b>«Что внутри»</b> — то, что на экране не показать (что портал сделал «под капотом»), объясняю простыми словами. Каждый шаг: <b>было → ожидалось → стало</b>.</div>
|
||
|
||
<!-- ШАГ A1 -->
|
||
<div class="step">
|
||
<h2>Шаг 1а — Регистрация клиента <span class="ok">✅ так и задумано</span></h2>
|
||
<div class="did">🎬 <b>Что я сделал:</b> открыл страницу регистрации, ввёл почту и пароль, поставил галочки согласия и «я не робот», нажал «Создать аккаунт».</div>
|
||
<table class="rep">
|
||
<tr><th>Что смотрим</th><th>Было</th><th>Ожидали</th><th>Стало (на самом деле)</th><th>Чем доказано</th></tr>
|
||
<tr><td>Экран</td><td class="was">пустая форма регистрации</td><td class="exp">портал просит ввести код из письма; войти пока нельзя</td><td class="got">форма принята, портал просит код</td><td><span class="pill shot">📸 скриншот ниже</span></td></tr>
|
||
<tr><td>Кабинет клиента</td><td class="was">клиента ещё нет</td><td class="exp">кабинет создан, но закрыт до подтверждения; денег пока нет</td><td class="got">кабинет создан и закрыт, на счету 0 ₽</td><td><span class="pill txt">💡 объясняю словами</span></td></tr>
|
||
<tr><td>Письмо с кодом</td><td class="was">—</td><td class="exp">клиенту уходит письмо с кодом, код живёт 15 минут</td><td class="got">код выдан, действует 15 минут</td><td><span class="pill txt">💡 словами</span></td></tr>
|
||
</table>
|
||
<div class="inside"><div class="h">💡 Что произошло внутри портала (простыми словами)</div>
|
||
Портал принял заявку: завёл кабинет нового клиента, но держит его <b>закрытым</b>, пока человек не введёт код из письма. Денег на счету пока <b>нет (0 ₽)</b> — стартовые деньги дают только после подтверждения. Код действует 15 минут, ввести можно не больше 5 раз — защита от подбора.</div>
|
||
<div class="shots">
|
||
<div class="shotcard before"><div class="cap">📸 «БЫЛО» — экран регистрации (живой портал)</div><div class="frame"><img src="img/pr1-register-before.png" alt="register"></div></div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ШАГ A2 -->
|
||
<div class="step">
|
||
<h2>Шаг 1б — Ввод кода → кабинет открыт, на счёт легло 300 ₽ <span class="ok">✅ так и задумано</span></h2>
|
||
<div class="did">🎬 <b>Что я сделал:</b> ввёл код из письма и подтвердил.</div>
|
||
<table class="rep">
|
||
<tr><th>Что смотрим</th><th>Было</th><th>Ожидали</th><th>Стало (на самом деле)</th><th>Чем доказано</th></tr>
|
||
<tr><td>Кабинет (Дашборд)</td><td class="was">вход закрыт</td><td class="exp">кабинет открылся, на счету <b>300 ₽</b></td><td class="got">вошёл в кабинет, на счету <b>300 ₽</b></td><td><span class="pill shot">📸 скриншот ниже</span></td></tr>
|
||
<tr><td>Деньги на счету</td><td class="was">0 ₽</td><td class="exp">ровно 300 ₽ (стартовый подарок)</td><td class="got">ровно 300 ₽</td><td><span class="pill shot">📸 видно на Дашборде</span></td></tr>
|
||
<tr><td>Код</td><td class="was">был действителен</td><td class="exp">после входа больше не работает</td><td class="got">погашен, повторно не пускает</td><td><span class="pill txt">💡 словами</span></td></tr>
|
||
</table>
|
||
<div class="inside"><div class="h">💡 Что произошло внутри портала (простыми словами)</div>
|
||
Клиент ввёл верный код — портал <b>открыл кабинет</b> и сразу положил на счёт <b>стартовые 300 ₽</b>. Это видно и на экране (Дашборд показывает 300 ₽), и так и задумано. Старый код после этого больше не действует. Всё прошло одним махом, без сбоев — кабинет не мог остаться «полуоткрытым».</div>
|
||
<div class="shots">
|
||
<div class="shotcard before"><div class="cap">📸 «БЫЛО» — кабинет ещё закрыт (экран регистрации/кода)</div><div class="frame"><img src="img/pr1-register-before.png" alt="before"></div></div>
|
||
<div class="arrowrow">→</div>
|
||
<div class="shotcard after"><div class="cap">📸 «СТАЛО» — кабинет открыт, БАЛАНС 300 ₽ (живой портал)</div><div class="frame"><img src="img/pr1-dashboard-after.png" alt="dashboard 300"></div></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="rule" style="border-color:#1c7e44;background:#06281f">
|
||
<b style="color:#7dffb4">ИТОГ по шагу: ✅ СОШЛОСЬ.</b>
|
||
Ждали, что после кода кабинет откроется и на счёт лягут 300 ₽ — так и вышло. Видно глазами (📸 Дашборд) и понятно, что внутри (💡 кабинет открыт, деньги начислены). Ничего не разошлось.
|
||
<br>На полном прогоне так же показываем всех 7 клиентов (📸 7 кабинетов) + у клиента C4 потом опускаем счёт до 600 ₽ (тоже скриншотом).
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|