Files
ss-tools/specs/023-clean-repo-enterprise/ux_reference.md

9.3 KiB
Raw Blame History

UX Reference: Clean Repository Enterprise Preparation

Feature Branch: 023-clean-repo-enterprise
Created: 2026-03-03
Status: Draft

1. User Persona & Context

  • Who is the user?: Release Manager и инженер сопровождения корпоративной платформы.
  • What is their goal?: Подготовить и выпустить clean-дистрибутив без тестовых данных и без зависимости от внешнего интернета.
  • Context: Работа в изолированной сети организации.
  • Interaction Model (explicit): Пользовательский интерфейс реализуется как интерактивный консольный TUI-скрипт на базе ncurses (или полностью совместимого аналога). Веб-интерфейс для этого сценария не является целевым.

2. The "Happy Path" Narrative

Оператор запускает TUI-скрипт и видит главный экран подготовки enterprise clean-релиза. В форме выбирается релиз-кандидат и профиль enterprise-clean, затем запускается проверка одной горячей клавишей. На экране в реальном времени обновляются этапы проверки: чистота данных, проверка источников ресурсов и изоляция от внешнего интернета. После завершения пользователь получает итоговый статус COMPLIANT, ID отчёта и короткую сводку для передачи в релизный процесс. Весь путь проходится в одном ncurses-экране без переходов во внешние инструменты.

3. Interface Mockups

CLI Interaction (TUI / ncurses)

$ clean-release-tui
┌──────────────────────────────────────────────────────────────────────────────┐
│ Enterprise Clean Release Validator (TUI)                                    │
├──────────────────────────────────────────────────────────────────────────────┤
│ Candidate: [2026.03.03-rc1                    ]   Profile: [enterprise-clean]│
│                                                                              │
│ Checks:                                                                      │
│  [ ] Data Purity (no test/demo payloads)                                    │
│  [ ] Internal Sources Only (company servers)                                 │
│  [ ] No External Internet Endpoints                                          │
│  [ ] Release Manifest Consistency                                             │
│                                                                              │
│ Allowed Internal Sources:                                                     │
│  - repo.intra.company.local                                                   │
│  - artifacts.intra.company.local                                              │
│  - pypi.intra.company.local                                                   │
│                                                                              │
│ Status: READY                                                                 │
├──────────────────────────────────────────────────────────────────────────────┤
│ F5 Run Check   F6 Export Report   F10 Exit                                   │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ Check Progress                                                               │
├──────────────────────────────────────────────────────────────────────────────┤
│ [1/4] Data Purity................................. PASS                       │
│ [2/4] Internal Sources Only....................... PASS                       │
│ [3/4] No External Internet Endpoints.............. PASS                       │
│ [4/4] Manifest Consistency........................ PASS                       │
│                                                                              │
│ FINAL STATUS: COMPLIANT                                                      │
│ Report ID: CCR-2026-03-03-001                                                │
├──────────────────────────────────────────────────────────────────────────────┤
│ Enter View Details   F6 Export Report   F10 Exit                             │
└──────────────────────────────────────────────────────────────────────────────┘

UI Layout & Flow (for TUI screen states)

Screen/Component: Main ncurses validation screen

  • Layout:
    • Верхний блок: выбор релиз-кандидата и профиля.
    • Средний блок: список проверок и прогресс.
    • Нижний блок: журнал сообщений/ошибок и подсказки горячих клавиш.
  • Key Elements:
    • Candidate Field: выбор проверяемого релиз-кандидата.
    • Profile Field: фиксированное значение enterprise-clean.
    • Allowed Sources Panel: видимый список допустимых внутренних серверов.
    • Violations Table (details mode): нарушения с категорией, путём и рекомендацией.
  • States:
    • Default: готовность к запуску проверки.
    • Running: поэтапный прогресс проверок.
    • Compliant: успешное завершение и экспорт отчёта.
    • Blocked: выпуск заблокирован до устранения нарушений.

4. The "Error" Experience

Philosophy: Ошибка должна блокировать выпуск и сразу показывать конкретное нарушение и путь исправления в терминах релизного процесса.

Scenario A: Найдены тестовые/демо-данные

  • User Action: Нажимает F5 Run Check.
  • System Response (TUI):
    • Итог: FINAL STATUS: BLOCKED
    • Запись в деталях: Category=Data Purity, Path=<artifact-path>, Action=Remove prohibited content
  • Recovery: Удалить артефакты, повторно запустить проверку из того же экрана.

Scenario B: Найден внешний источник ресурсов

  • System Response (TUI):
    • Итог: FINAL STATUS: BLOCKED
    • Запись в деталях: Category=External Source, Endpoint=<external-host>, Action=Replace with approved internal server
  • Recovery: Заменить источник на внутренний из реестра разрешённых, затем повторить проверку.

Scenario C: Недоступен внутренний сервер ресурсов

  • System Response (TUI):
    • Этап помечается как FAILED: Internal source unavailable
    • Итог: BLOCKED (operational risk)
  • Recovery: Восстановить доступность внутреннего сервера и перезапустить проверку (F5).

5. Tone & Voice

  • Style: Операционный, короткий, однозначный.
  • Terminology:
    • Использовать: «enterprise clean-профиль», «релиз-кандидат», «внутренний сервер», «блокировка выпуска».
    • Не использовать размытые формулировки вроде «возможно» или «вероятно».
    • В сообщениях о нарушениях указывать: категорию, объект, действие для исправления.