# Ручная проверка GitHub Pages

Обновлено: 16 июля 2026 года.

## Назначение

Этот пакет помогает закрыть issue #164 без подмены ручной проверки автоматическим smoke-тестом.

`Audit public deployment smoke` уже подтверждает доступность custom domain и совпадение четырёх ключевых файлов с checkout. Он не видит настройки `Settings → Pages`, выбранный source branch, папку публикации, HTTPS enforcement и внутренний статус конкретного Pages deployment.

## Файл-шаблон

Используйте `data/github_pages_manual_check_template.csv` как локальный рабочий лист.

Шаблон намеренно содержит:

- пустые `observed_value` и `evidence_ref`;
- статус `not_checked` во всех строках;
- только ожидаемые значения и места проверки.

Незаполненный шаблон не является evidence и не переводит `actions-011` в `passed`.

## Локальный мастер

Локальный мастер на странице `/actions-check/` загружает тот же пустой CSV и помогает заполнить восемь пунктов без ручного редактирования структуры файла.

Мастер:

- хранит черновик только в `localStorage` текущего браузера;
- не отправляет данные в GitHub и не меняет настройки Pages;
- проверяет порядок и состав восьми строк;
- требует фактическое значение и безопасную ссылку для каждого отмеченного пункта;
- блокирует экспорт при структурных ошибках или признаках токена, пароля и секрета;
- позволяет нажать «Скачать заполненный CSV»;
- позволяет нажать «Скачать `actions-013`» или скопировать строку;
- формирует общий статус `pending`, `warning` или `passed` автоматически.

`passed` формируется только при восьми положительных статусах, заполненных фактических значениях, безопасных ссылках и корректной дате проверки. Пользователь не может отдельно выбрать общий статус `passed`.

Сброс локального черновика очищает только `localStorage`. Репозиторный шаблон остаётся пустым.

## Порядок проверки

1. Открыть репозиторий `deputat36/tosborisoglebsk.github.io`.
2. Перейти в `Settings → Pages`.
3. В отдельной вкладке открыть `/actions-check/` и перейти к мастеру ручной проверки.
4. Зафиксировать фактический способ публикации: source branch и папку либо GitHub Actions.
5. Проверить custom domain `tosborisoglebsk.ru`.
6. Проверить, что HTTPS enforcement включён.
7. Открыть последний Pages deployment и убедиться, что он завершён со статусом success.
8. Открыть опубликованный URL из интерфейса Pages или deployment.
9. Для каждого проверенного пункта указать фактическое значение, статус и безопасную ссылку или обезличенный код.
10. Указать фактическую дату проверки в формате `YYYY-MM-DD`.
11. Скачать заполненный CSV и строку `actions-013`.
12. Проверить экспорт перед коммитом и удалить любые закрытые сведения.
13. Приватные скриншоты, токены, закрытые URL и сведения об аккаунте не загружать в публичный репозиторий.

## Статусы пунктов

- `not_checked` — пункт ещё не проверен; фактическое значение и ссылка должны оставаться пустыми;
- `confirmed`, `passed`, `success` — положительный результат с заполненными значением и ссылкой;
- `warning`, `mismatch`, `failed`, `blocked` — обнаружено несоответствие или блокировка.

Общая строка `actions-013` получает:

- `passed` — только когда все восемь пунктов положительны и структурно корректны;
- `warning` — если есть хотя бы один проблемный статус;
- `pending` — если проверка начата, но часть пунктов остаётся `not_checked`.

## Допустимое evidence

Подходит одно или несколько безопасных оснований:

- публичный URL Pages deployment;
- публичный URL workflow run;
- опубликованный URL сайта;
- обезличенный код закрытого evidence, если сам материал хранится вне публичного GitHub.

Само наличие доступного сайта не подтверждает выбранный source branch или HTTPS enforcement в интерфейсе GitHub.

Мастер отклоняет явные признаки токенов и секретов, но не может гарантировать безопасность произвольной ссылки. Перед коммитом экспорт нужно проверить вручную.

## Как зафиксировать результат в проекте

После реальной проверки добавить отдельную историческую строку в `data/actions_diagnostics.csv`. Не редактировать `actions-012`: это evidence автоматического public smoke.

Шаблон новой строки:

```csv
actions-013,manual-check,"GitHub Pages deployment","[source branch; publish folder; custom domain; HTTPS; deployment status; URL]","[safe evidence ref]",passed,"Повторять ручную проверку после изменения Pages settings или способа публикации",YYYY-MM-DD
```

Использовать статус `passed` можно только если все обязательные пункты проверены. При неполной проверке мастер сформирует `pending`, а при несоответствии — `warning`.

Заполненный CSV и строка `actions-013` являются только подготовленным локальным результатом. Они становятся частью проекта после отдельной проверки и осознанного коммита.

## Критерий закрытия issue #164

- фактический source branch или способ публикации зафиксирован;
- папка публикации или GitHub Actions подтверждены;
- custom domain подтверждён;
- HTTPS enforcement проверен;
- последний deployment имеет успешный статус;
- опубликованный URL открыт из интерфейса Pages;
- в `data/actions_diagnostics.csv` добавлена честная строка с датой и безопасным evidence;
- issue #164 обновлена и закрыта только после фактической проверки.

## Границы

- инструкция и мастер не меняют настройки GitHub Pages;
- шаблон не является доказательством до заполнения после реальной проверки;
- автоматический smoke не закрывает issue #164;
- мастер не закрывает issue и не коммитит файлы;
- закрытые скриншоты и данные аккаунта не хранятся в публичном репозитории.
