Контекст

В вики два типа контента — написанный человеком и сгенерированный LLM. До этого использовался enum status: draft | active | contested | superseded, но он опирается на self-declaration автора: LLM-страница может получить status: active без участия человека, и читатель не отличит её от человеческой.

Новый сигнал — видели ли это страницу человеческие глаза. Не «я считаю, что текст готов», а «N человек прочитали и подтвердили». Это честнее под текущий режим — LLM пишет много, человек ревьюнет выборочно.

Модель

Поле в frontmatter:

verified_by:
  - { who: ildar, when: 2026-05-15 }
  - { who: artur, when: 2026-05-17 }

Состояния:

  • Ключа нет или массив пустой — not verified
  • Одна или больше записей — verified

Self-verification считается. Если автор писал руками и читал то, что написал, он добавляет себя — это уже первая пара глаз. Empty verified_by означает нейтрально «никто не подтвердил» — без обвинений в AI-генерации; страница могла быть и человеческой, просто никто ещё не вписался.

Применимость

Ко всем типам страниц wiki, не только decision. concept, entity, source, team — у любой может быть AI-черновик, ждущий человеческого прочтения. Поле опциональное: пока никто не вписан, страница в состоянии not verified.

Визуальные состояния

На странице — компактный бейдж в шапке под заголовком, рендерится Quartz-компонентом.

Verified-состояние показывает только последнего верификатора и сколько дней назад:

Verified by Artur · 2 days ago

Not-verified-состояние нейтральное, без догадок про происхождение:

Not verified

В Explorer (sidebar) разница peripheral: verified-страницы рендерятся нормально, not-verified — opacity 0.5 + italic. Глаз ловит «яркие» как verified, не-verified «в фоне».

Отношение к status: — ортогональная ось

status: и verified_by описывают разные свойства страницы:

СигналЧто описываетКто ставит
status:author intent — где автор считает страницу в lifecycleавтор
verified_byreview history — кто прочитал и одобрилте, кто читал

AI-страница без verified_by, но автор считает её current = status: active + 0 verifications. Это не противоречие, а «автор так задумал, но никто не подтвердил». Сочетания осмысленны:

  • active + verified — settled, multiple eyes
  • active + not verified — автор считает current, но никто не подтвердил
  • draft + not verified — WIP / unreviewed AI-output
  • superseded — страница заменена, читать новее (verified-ось не важна)

Допустимые status: остаются как в CLAUDE:

  • entity/concept: draft, active, superseded
  • decision: добавляется contested (несколько позиций, ищется компромисс)

Открытые вопросы

  • Threshold. Сейчас ≥1 верификатор. Если один читатель окажется слишком слабым сигналом, поднять до ≥2.
  • TTL. Verification сейчас не «протухает». Если страницы реально начнут гнить после verified — ввести стилевой «stale verification».
  • Эволюция к auto-stamp. Сейчас verified_by дописывается руками. Возможный next step — GitHub Action при merge PR вписывает reviewers автоматически. Требует переезда с Syncthing-direct-commit на PR-flow.

Связано

  • CLAUDE — общие правила вики (типы страниц, формат frontmatter)
  • вопросы — общий index открытых вопросов