21 KiB
SEO Farm UI / UX Spec
1. Назначение документа
Этот документ описывает обязательный UI/UX-набор для MVP SEO Farm.
Он не описывает визуальный дизайн в пикселях. Его задача — зафиксировать:
- какие экраны нужны;
- какие элементы управления нужны;
- какие состояния должны быть предусмотрены;
- что пользователь должен видеть перед каждым важным действием;
- где нужны проверки, подтверждения и diff;
- как не превратить процесс обратно в ручную таблицу и хаос.
Task manager пока не проектируем. Он будет отдельным слоем после базового UI/UX.
2. Главный UX-принцип
SEO Farm — рабочий инструмент, не лендинг и не чат с моделью.
Пользователь должен видеть:
что найдено
что предложено
почему предложено
что выбрано
что изменится
что ещё опасно
что будет применено
Все изменения должны проходить через рабочую копию:
original project
-> original snapshot
-> working draft
-> pending changes
-> final validation
-> diff
-> manual Apply
Target project нельзя менять молча.
3. Базовая структура интерфейса
Рекомендуемый layout:
Top Bar
- project switcher
- current project path
- run status
- global actions
Left Navigation
- Project Dashboard
- Scan / Baseline Audit
- Pages / Source
- Seeds
- Wordstat
- Keyword Cleaning
- Keyword Map
- Optimization Plan
- Rewrite
- Media SEO
- Final Validation
- Apply / Export
- History / Reports
Main Workspace
- current screen content
Right Inspector
- selected item details
- reasons
- warnings
- actions
Bottom / Side Run Panel
- running tasks
- logs
- retries
- errors
Левая навигация должна показывать статус этапов:
not_started
running
needs_review
has_errors
approved
applied
4. Глобальные UI-элементы
4.1. Project Switcher
Нужен всегда в верхней панели.
Показывает:
- название проекта;
targetProjectPath;- дату последнего scan;
- статус последнего run.
Действия:
- открыть другой проект;
- создать проект;
- открыть папку проекта;
- запустить повторный scan.
4.2. Pipeline Stepper
Глобальный индикатор этапов:
Scan
Audit
Pages
Seeds
Wordstat
Cleaning
Map
Plan
Rewrite
Media
Final Validation
Apply
Назначение:
- показать, где пользователь находится;
- показать, что уже готово;
- показать, что заблокировано;
- не дать перейти к apply без Final Validation.
4.3. Run Status Panel
Панель фоновых задач.
Нужна для:
- project scan;
- baseline audit;
codex exec;- Wordstat collection;
- keyword classification;
- ru-text;
- validation;
- export.
Состояния:
queued
running
done
failed
cancelled
needs_retry
Минимальные действия:
- view log;
- retry;
- cancel, если задача ещё безопасно отменяется;
- copy error.
4.4. Pending Changes Drawer
Критически важный элемент.
Показывает все изменения, которые уже лежат в working draft, но ещё не применены:
- visible text;
title;description;- headings;
alt/title/aria;- captions;
- filename rename plan;
- changed files.
Должен быть доступен с любого экрана после появления first draft.
Нельзя делать Apply, если pending changes скрыты от пользователя.
4.5. Diff Viewer
Обязателен для:
- текстов секций;
- title/description;
- headings;
- alt/caption;
- filename rename.
Минимальные режимы:
side-by-side
inline
changed-only
all-fields
Поля diff:
field
source file
selector / media id
before
after
status
warnings
4.6. Status Badges
Единый набор статусов:
ok
warning
error
needs_review
approved
ignored
applied
Для ключей:
use
support
article
risky
trash
Для media:
ok
missing
weak
duplicate
decorative
needs-human
5. Основные экраны
5.1. Projects / Create Project
Цель: создать SEO-проект и указать источник сайта.
Обязательные элементы:
- project name input;
- source type selector:
local_folderfor MVP; targetProjectPathpicker;- path validation result;
- ignored folders preview:
.git,node_modules,dist; - create project button;
- recent projects list.
Нельзя:
- заставлять пользователя выбирать
index.html,css,imagesруками; - начинать SEO-cycle без валидного source config.
Состояния:
empty
invalid_path
path_not_accessible
project_created
scan_required
5.2. Project Dashboard
Цель: показать состояние проекта и быстрый вход в текущую работу.
Обязательные блоки:
- project summary;
- last scan;
- baseline audit status;
- pages count;
- media count;
- pending changes count;
- last runs;
- last changesets;
- latest exports.
Основные действия:
- Analyze Project;
- Continue Draft;
- Open Baseline Audit;
- Open Pending Changes;
- Export latest applied version.
5.3. Scan / Baseline Audit
Для пользователя это один сценарий: “Проанализировать проект”.
Backend внутри делает:
scan
-> parse
-> map
-> baseline audit
UI показывает не технический parse, а понятный прогресс:
Scanning files
Reading pages
Mapping sections
Checking SEO structure
Checking media
Building report
Экран результата:
- found pages;
- found text sections;
- found media;
- missing title/description;
- heading issues;
- media issues;
- duplicate/empty alt;
- weak filenames;
- source mapping warnings.
Нужные компоненты:
- issue summary cards;
- issue table;
- page tree;
- media issue list;
- severity filters;
- open page action.
5.4. Pages / Source Workspace
Цель: выбрать страницу или группу страниц и увидеть исходную структуру.
Обязательные элементы:
- page list / page tree;
- section list;
- source file path;
- DOM selector;
- original text preview;
- working text preview;
- meta fields;
- media attached to section;
- design length hints.
Основной UX:
левая колонка: страницы и секции
центр: original / working text
правая колонка: details, warnings, actions
Действия:
- create working draft;
- reset working draft;
- mark section ignored;
- open section in Rewrite;
- open section keywords.
5.5. Meaning Extraction
Цель: получить смысловую карту страницы и seed-запросы.
Обязательные элементы:
- primary intent card;
- section meaning cards;
- product entities;
- possible competing intents;
- proposed seed queries;
- confidence/reason field;
- approve/edit controls.
Важно:
- seed-запросы должны быть связаны с конкретным смыслом/секцией;
- пользователь должен видеть, откуда seed взялся;
- модель не должна придумывать SEO-направления, которых нет в тексте.
5.6. Seeds
Цель: утвердить seed-запросы перед Wordstat.
Компоненты:
- seeds table;
- selected checkbox;
- source section;
- reason;
- confidence;
- priority;
- manual add;
- merge similar;
- send to Wordstat.
Фильтры:
- selected;
- unselected;
- low confidence;
- manual;
- by section.
5.7. Wordstat
Цель: собрать реальные запросы и частотность.
Компоненты:
- seed queue;
- run by seed;
- batch run;
- raw results table;
- frequency;
- frequency group: high / mid / low;
- dynamics;
- region;
- source seed;
- raw response link.
Состояния:
not_collected
collecting
collected
partial_failed
rate_limited
needs_retry
Важно:
Wordstat не принимает SEO-решения. Он только приносит данные.
5.8. Keyword Cleaning
Цель: быстро очистить Wordstat-результаты от мусора.
Компоненты:
- keyword table;
- phrase;
- frequency;
- source seed;
- proposed status;
- reason;
- confidence;
- duplicate group;
- intent tag;
- bulk actions.
Статусы:
use
support
article
risky
trash
Фильтры:
- high/mid/low;
- use/support/article/risky/trash;
- low confidence;
- needs review;
- by seed;
- by section candidate.
Действия:
- approve selected;
- mark trash;
- mark article backlog;
- send ambiguous to Codex classification;
- add to blacklist;
- undo last bulk action.
5.9. Keyword Map
Цель: разложить утверждённые ключи по страницам и секциям без ручной дрочни.
Главная логика:
модель предлагает карту
пользователь утверждает/редактирует
Layout:
левая колонка: страницы/секции
центр: assigned keywords
правая колонка: unassigned / risky / article backlog
Компоненты:
- section cards;
- primary keyword selector;
- secondary/supporting keyword chips;
- exact limit input;
- soft forms editor;
- warnings;
- unassigned keywords list;
- apply suggestions button.
Должно быть видно:
- почему ключ предложен в секцию;
- не конфликтует ли ключ со смыслом;
- сколько точных вхождений разрешено;
- какие ключи нельзя использовать на этой странице.
5.10. Optimization Plan
Цель: до переписывания показать, что именно система собирается менять.
Компоненты:
- sections to edit;
- sections to leave unchanged;
- keywords to add;
- keywords to reduce;
- media SEO tasks;
- length risks;
- tone risks;
- approval button.
Важно:
Без утверждения плана нельзя переходить к rewrite.
5.11. Rewrite Workspace
Цель: безопасно редактировать тексты в workingText.
Layout:
left: originalText
center: workingText editor
right: keywords, limits, warnings, Codex variants
Обязательные элементы:
- original text locked view;
- working text editor;
- assigned keywords;
- keyword counters;
- exact limit warnings;
- design length indicator;
- Codex variant cards;
- accept variant;
- merge variant;
- manual edit;
- reset section;
- send to Media SEO / Final Validation queue.
Важно:
- Codex пишет только в working draft;
- originalText нельзя редактировать;
- target project не меняется.
5.12. Media SEO
Цель: проверить и поправить изображения, видео, alt, подписи, filename.
Layout:
left: media list
center: preview / frames / context
right: alt/caption/filename editor + warnings
Компоненты:
- media table/grid;
- preview;
- file path;
- source references;
- current alt;
- proposed alt;
- current filename;
- proposed filename;
- related section;
- related keywords;
- decorative toggle;
- needs-human flag;
- video context field;
- caption editor;
- rename plan.
Статусы:
ok
missing
weak
duplicate
decorative
needs-human
Правило:
Ключ можно встроить в alt/filename/caption только если он естественно описывает медиа и контекст секции.
5.13. Final Validation
Цель: проверить всё вместе перед Apply.
Проверяется:
- text SEO;
- over-SEO;
- ru-text quality;
- competing meanings;
- design length;
- title/description/h1/h2;
- alt/filename stuffing;
- media issues;
- pending changes.
Компоненты:
- validation summary;
- errors;
- warnings;
- passed checks;
- grouped by page/section/media;
- jump to issue;
- rerun validation;
- mark warning accepted;
- block Apply on hard errors.
Hard errors:
- invalid target path;
- missing working draft;
- malformed model output;
- broken filename references;
- Apply without diff;
- critical validation failed.
Soft warnings:
- weak alt;
- long text;
- risky keyword;
- low confidence classification;
- stylistic warning.
5.14. Patch / Export
Цель: показать все изменения, материализовать patch artifact и запускать production patch-run только после отдельного подтверждения.
Обязательные элементы:
- affected files;
- affected sections;
- affected media;
- text diff;
- meta diff;
- media diff;
- filename rename plan;
- validation status;
- patch artifact path/name;
- changeset summary;
- confirmation checkbox;
- Build Patch button;
- Run Patch button;
- Export button.
Build Patch должен быть заблокирован, если:
- нет финальной проверки;
- есть hard errors;
- diff не построен;
- pending changes пустые;
- пользователь не подтвердил changeset.
Run Patch должен быть заблокирован, если:
- patch artifact не создан;
- dry-run не прошёл;
- пользователь не подтвердил production patch-run;
- source tree изменился после dry-run.
Export:
- zip target project;
- reports;
- keyword map;
- changeset summary.
5.15. History / Reports
Цель: сохранить проектную работу и дать вернуться позже.
Компоненты:
- run timeline;
- scan history;
- baseline audit history;
- Wordstat collections;
- keyword decisions;
- keyword maps;
- optimization plans;
- rewrite history;
- validation reports;
- changesets;
- exports.
MVP:
- хранить историю runs и changesets;
- показывать последние отчёты;
- не делать полноценную версионность всех drafts.
6. Обязательные таблицы
6.1. Keyword Table
Колонки:
phrase
frequency
frequency_group
source_seed
proposed_status
approved_status
intent
section_candidate
confidence
reason
actions
6.2. Section Table
Колонки:
page
section_id
selector
meaning
original_length
working_length
assigned_primary
assigned_secondary_count
warnings
status
6.3. Media Table
Колонки:
preview
file
type
section
current_alt
proposed_alt
filename_status
seo_status
needs_human
actions
6.4. Changes Table
Колонки:
field
file
selector_or_media_id
before
after
validation_status
approved
7. Обязательные редакторы
7.1. Text Editor
Нужен для workingText.
Требования:
- не редактировать originalText;
- показывать keyword counters;
- показывать length warnings;
- сохранять draft;
- поддерживать manual edit;
- поддерживать accept/merge Codex variant.
7.2. Meta Editor
Поля:
- title;
- description;
- h1;
- h2 map.
Должен показывать:
- before/after;
- length;
- keyword usage;
- duplicates.
7.3. Alt / Media Editor
Поля:
- alt;
- title;
- aria-label;
- caption;
- video description;
- proposed filename.
Должен показывать:
- preview;
- section context;
- related keywords;
- stuffing warning;
- decorative toggle.
8. Empty / Loading / Error States
Каждый экран должен иметь состояния:
empty
loading
running
success
partial_success
needs_review
error
blocked
Примеры:
- Project без scan: показать кнопку Analyze Project.
- Wordstat без seeds: показать, что сначала нужно утвердить seeds.
- Keyword Map без cleaned keywords: заблокировать экран и объяснить почему.
- Apply без final validation: заблокировать Apply.
- Media без найденных медиа: показать empty state, не ошибку.
9. Confirmations
Подтверждение нужно для:
- reset working draft;
- bulk mark trash;
- apply changes;
- rename files;
- rerun scan, если есть pending changes;
- accept reconcile result after repeated scan;
- discard pending changes;
- export archive.
Confirmation должен показывать последствия, а не просто “Вы уверены?”.
10. UX-защита от хаоса
Нельзя:
- прятать pending changes;
- применять изменения без diff;
- смешивать original и working text;
- давать Wordstat-таблице выглядеть как готовое решение;
- заставлять пользователя вручную раскладывать все ключи с нуля;
- показывать model output без reasons/confidence;
- запускать Apply после Media SEO без Final Validation;
- делать ручной выбор файлов вместо project scan.
Нужно:
- показывать источник каждого предложения;
- показывать причину каждого risky/trash/article статуса;
- давать bulk actions с undo;
- сохранять run history;
- показывать, какой инструмент дал какой warning;
- отделять hard errors от soft warnings.
11. MVP UI Scope
MVP должен включать:
Projects
Project Dashboard
Scan / Baseline Audit
Pages / Source
Seeds
Wordstat
Keyword Cleaning
Keyword Map
Optimization Plan
Rewrite
Media SEO
Final Validation
Apply / Export
History / Reports
Можно упростить в первом проходе:
- один проект;
- одна выбранная страница;
- один working draft на секцию;
- простая таблица вместо сложного drag-and-drop;
- простой diff;
- простые reports.
Нельзя упростить:
targetProjectPath;- source type, currently
local_folder; - project scan;
- original vs working separation;
- user approval;
- Final Validation before Apply;
- changeset;
- pending changes visibility.
12. Не MVP
Пока не проектируем:
- task manager;
- контент-календарь;
- Яндекс Метрика / Вебмастер;
- автопостинг;
- многопользовательский режим;
- облачную версию;
- полноценную draft versioning;
- advanced analytics dashboard;
- Codex skills UI.
Эти вещи можно добавить после стабильного вертикального сценария.
13. Первый вертикальный UI-сценарий
Чтобы не строить всё сразу, первый рабочий проход должен быть таким:
Create Project
-> Analyze Project
-> Baseline Audit
-> Select one page
-> Create working draft
-> Extract meanings/seeds
-> Approve seeds
-> Wordstat collection
-> Keyword Cleaning
-> Keyword Map
-> Optimization Plan
-> Rewrite one section
-> Media SEO for related media
-> Final Validation
-> Diff
-> Apply
-> Export report
Если этот проход работает end-to-end, дальше можно наращивать сложность.