| type | schema |
|---|---|
| applies_to | Wiki at wiki/ |
| maintained_by | Dzmitry Varabei (координатор) |
| last_updated | 2026-04-21 |
| version | 1.0 |
Операционные правила, как агенты и координаторы пишут страницы в wiki/. Тон прямой и технический. Голос Tandi здесь не звучит — он живёт в эссе, а не в правилах. Конституция отвечает на вопрос «кто такая Tandi», этот документ — на вопрос «как устроена Wiki». Паттерн взят из заметки Карпати (см. vision.md, раздел 5): три слоя — raw sources (неизменные), Wiki (LLM создаёт и поддерживает), Schema (правила). Этот файл — третий слой.
Wiki — единственный источник правды о фактах RS School: людях, курсах, инфраструктуре, решениях, концептах, инцидентах. Зафиксированный факт цитируется в эссе, ответах на issues, онбординге и ответах тьютора.
Чем Wiki не является:
- Не маркетинговый сайт. Внешние материалы (лендинги, презентации, публичные выпуски Tandi) живут в
public/,docs/editorial/и релизных артефактах. - Не лента новостей. Хроника событий — в
log.mdи в выпусках Tandi. Wiki держит текущее состояние, не историю. - Не папка черновиков. Незавершённые мысли и идеи — в
docs/ideas/,docs/editorial/или личных заметках. В Wiki попадает только то, что готово быть цитируемым фактом. - Не голос Tandi. Wiki описывает факты нейтрально. Голос Tandi (раздел 3 Конституции) — в эссе, не здесь.
Простая проверка перед созданием страницы: «будет ли агент или человек цитировать это как факт о школе?» Если нет — место не здесь.
Wiki живёт в wiki/. Шесть категорий. Имена файлов — kebab-case, расширение .md.
wiki/
index.md # каталог всех страниц
log.md # append-only журнал действий
people/ # люди: координаторы, менторы, команды
courses/ # курсы: rs-tandem, angular, ai-systems
infrastructure/ # пайплайны, репозитории, деплой, интеграции
decisions/ # решения: что выбрали и почему (аналог DECISIONS.md)
concepts/ # концепты школы: чекпоинт, дневник, ladder, defence
incidents/ # инциденты и war stories
Шесть категорий — закрытый список. Новые добавляются только через PR в этот документ. Если страница не укладывается ни в одну — скорее всего, это не факт о школе. Подпапки внутри категории допустимы при разрастании (people/coordinators/, people/teams/); решение — у Воробья или координатора на lint-pass'е.
Каждая страница — один из четырёх типов. Тип указывается в frontmatter.
- entity — одна сущность: человек, команда, курс, репозиторий, сервис. Пример:
people/dzmitry-varabei.md,courses/angular.md. - concept — понятие или паттерн школы. Пример:
concepts/checkpoint.md,concepts/diary-entry.md. - source-summary — пересказ raw-источника (CLAUDE.md, session-protocol, war story, выпуск Tandi). Сжимает источник до фактов, ссылается на оригинал. Оригинал неизменен. Пример:
concepts/tandi-voice.md→docs/editorial/tandi-voice-b.md. - index — индексный или журнальный файл. Только
index.mdиlog.md.
Одна страница — один тип. Смешанный материал дробится на несколько страниц с перекрёстными ссылками.
Каждая страница начинается с YAML-блока. Обязательные поля:
---
type: entity | concept | source-summary | index
title: <человекочитаемый заголовок>
status: active | archived | draft
last_updated: YYYY-MM-DD
sources:
- <путь к raw-источнику>
- <или внешний URL>
related:
- <путь к другой wiki-странице>
- <или пусто, если связей пока нет>
---Правила:
type— один из четырёх перечисленных, без значения по умолчанию.title— на языке страницы (русский для большинства, английский для Angular-специфики).status—activeпо умолчанию.draft— в процессе (допустимо, не цитируется).archived— факт устарел, удалять нельзя; агенты игнорируют, ссылки живы.last_updated— дата последней значимой правки. Опечатка не сдвигает; правка факта — обязательно.sources— пути к первоисточникам. Дляsource-summaryобязательны; дляentityиconceptжелательны.related— пути к связанным wiki-страницам (отwiki/). Пустой список допустим только для свежесозданных страниц; lint пометит их как кандидатов в orphan.
Стиль frontmatter совпадает с constitution.md (см. блок в начале того файла).
index.md — каталог всех страниц Wiki, сгруппированный по шести категориям из раздела 2. Формат:
# Wiki Index
## people/
- `people/dzmitry-varabei.md` — координатор RS School [active]
## courses/
- `courses/rs-tandem.md` — флагманский курс, 37 команд [active]
- `courses/angular.md` — первый курс федерации после флагмана, старт 04-27 [active]
## infrastructure/
- `infrastructure/pipeline-overview.md` — 6-шаговый пайплайн Tandi [active]
## decisions/
- `decisions/clone-main-only.md` — клонируем только main-ветку, почему [active]
## concepts/
- `concepts/checkpoint.md` — формула чекпоинта [active]
- `concepts/tandi-voice.md` — пересказ voice guide для агентов [active]
## incidents/
- `incidents/007-voice-we-keep-forgetting.md` — как pipeline-голос вытеснял Tandi [active]Правила:
- Одна строка на страницу:
`путь`+ тире + одно предложение саммари +[status]. - Саммари — факт, а не приглашение: «координатор RS School», не «страница о координаторе».
- Категории в порядке раздела 2. Внутри категории — алфавит по пути.
- Пустая категория сохраняет заголовок с пометкой
_(пока пусто)_.
Создание, переименование или архивирование синхронно правит index.md. Страница без записи — orphan (раздел 9).
log.md — append-only журнал. Старые записи не правятся; ошибочная запись закрывается новой. Формат записи:
## [YYYY-MM-DD] <action> | <subject> | <by>
<одно-три предложения контекста, опционально>Допустимые action:
- ingest — добавлен новый источник, созданы/обновлены страницы.
- update — существующая страница обновлена значимо (не опечатка).
- amendment — правка
constitution.mdилиschema.md. - lint — проведён lint-pass; краткий итог в теле записи.
- orphan-found — lint нашёл страницу без ссылки из
index.md. - contradiction-found — lint нашёл факт, противоречащий другой странице.
subject — путь, заголовок или номер инцидента. by — имя, github-handle или идентификатор агента (tandi-scout, claude-agent-<short-hash>). Пример:
## [2026-04-21] ingest | constitution v1.0 | Dzmitry Varabei
Создана Конституция Tandi. Добавлена `concepts/tandi-voice.md`, обновлён `index.md`.
## [2026-05-15] lint | первый монтли-проход | Dzmitry Varabei
Найдено 2 orphan, 1 противоречие по формуле checkpoint. Подробности — в записях ниже.Сортировка — хронологическая, новые записи в конец файла.
Новый источник (документ, war story, решение, обновлённый CLAUDE.md) попадает в Wiki по одному и тому же порядку — для агента и для координатора:
- Прочитать источник целиком. Без выборочного чтения. Источник остаётся неизменным.
- Написать или обновить
source-summary-страницу в нужной категории. Саммари — факты, не пересказ стиля. Ссылка на оригинал — вsources. - Обновить связанные
entityиconceptстраницы. Если источник упоминает человека, курс, чекпоинт, решение — каждая такая страница правится, если факты изменились. Типичный ingest задевает 5–15 страниц. - Обновить
index.md. Новые страницы — в категорию, изменённые саммари — поправить строку. - Дописать запись в
log.md. Одна запись на ingest, с перечислением затронутых страниц. - Проверить
related-связи. Новая страница ссылается хотя бы на одну существующую, и хотя бы одна существующая — на неё.
При неуверенности, является ли факт новым или противоречащим старому, ingest останавливается, в log.md идёт запись с action contradiction-found; разбирает Воробей или координатор на следующем lint-pass'е.
Когда агент или координатор ищет факт для эссе, ответа на issue, онбординга или отчёта:
- Сначала —
index.md. Это карта Wiki; прямой grep — fallback, не первый шаг. - Перейти по ссылке. Прочитать страницу целиком, включая frontmatter (
status,last_updated). - Следовать
related-связям. Факт редко живёт на одной странице; 2–3 соседних обычно дают полный контекст. - Синтезировать ответ с цитированием страниц вида
(wiki: concepts/checkpoint.md). Студенту ссылку показывать необязательно, во внутренних заметках и отчётах жюри — обязательно. - Вернуть находку в Wiki. Обнаружился факт, которого в Wiki нет? Создать страницу или дополнить существующую. Query, из которого ничего не осело — упущенная возможность.
Страница со status: archived в query-ответах не участвует, кроме случаев, когда вопрос прямо про историю.
Ежемесячный прогон. Первый — 2026-05-15, ответственный — Воробей (см. vision.md, разделы 5 и 9 R4). Дальше ответственность ротируется между координаторами. Проверки:
- Противоречия. Один факт на двух страницах описан по-разному. В
log.md—contradiction-found, разбирается отдельно. - Устаревшие страницы.
last_updatedстарше трёх месяцев. Агент проходит по источникам, проверяет актуальность; при подтверждении — обновляет дату без изменения содержания и делает пометку вlog.md. - Orphan-страницы. Нет в
index.mdили не упомянуты ни одной другой страницей. Записьorphan-found; решение — подключить или архивировать. - Битые ссылки.
sourcesиrelated, указывающие на несуществующие файлы, — починить или удалить. - Нарушения схемы. Отсутствует обязательное поле frontmatter,
typeне из списка, страница написана в голосе Tandi (раздел 10).
Каждый lint-pass завершается одной записью lint в log.md со сводкой; детали — в подзаписях.
Чего в Wiki нельзя:
- Копировать raw-источник дословно. Wiki — саммари, не зеркало. Дословное копирование разрушает слой «Wiki LLM создаёт и поддерживает» (
vision.md, раздел 5). Оригинал — черезsources. - Создавать страницу без записи в
index.md. Страница вне индекса — orphan с рождения. - Править без обновления
last_updated. Дата — единственный сигнал для lint'а и query-агентов. - Писать в голосе Tandi. Wiki — факты, не эссе. «Tandi заметила» здесь не пишется; тянет на литературный оборот — материал для эссе. Голос — в разделе 3 Конституции.
- Дублировать страницы. Есть
concepts/checkpoint.md— обновить её, а не создаватьconcepts/checkpoint-new.md. - Удалять страницы. Удаление ломает ссылки и стирает историю. Корректный путь —
status: archived: страница живёт, агенты игнорируют, ссылки целы.
Скелет страницы типа entity:
---
type: entity
title: Курс Angular
status: active
last_updated: 2026-04-21
sources:
- vision.md
- courses/angular/README.md
related:
- concepts/checkpoint.md
- infrastructure/pipeline-overview.md
---
# Курс Angular
Первый курс федерации Tandi после флагмана. Старт — 2026-04-27. Первый курс, где Tandi запускается не школой-центром, а внешним координатором со своей LLM-подпиской.
## Ключевые факты
- Язык курса: английский по умолчанию, двуязычный.
- Course Kit: `courses/angular/` в `rs-tandem-dashboard`.
- Критерий успеха пилота: к 2026-05-03 хотя бы один координатор умеет запустить `collect`/`scan` локально (`vision.md`, раздел 6).
## Что дальше
Ссылки на `decisions/` и `incidents/` заполняются по мере появления.Обязательная часть — frontmatter, заголовок, фактологическая секция, раздел со связями. Остальное — по необходимости.
Схема меняется медленнее Wiki, но чаще Конституции. Поправки — через PR, запись в log.md с action amendment.