| 1 | ## Публикация KB: что входит, а что нет |
| 2 | |
| 3 | Этот файл задаёт явные правила, **какие части KB можно выкладывать публично**, а какие остаются только локально. |
| 4 | |
| 5 | **Лицензия на текст внутри публичной сборки kb-public** (артефакт после фильтров этого файла; если в конкретном файле не указано иное): см. раздел **«Лицензия: публичная сборка KB (kb-public)»** в [`README.md`](README.md) в этом каталоге — **CC BY-SA 4.0**; это **не** лицензия на весь репозиторий agent-notes; коммерция — по согласованию. |
| 6 | |
| 7 | ### Механика сборки kb-public |
| 8 | |
| 9 | 1. **`agent-notes.md`** — в сборку попадает только текст **до** первого маркера `<!-- public-cut -->`. |
| 10 | 2. **`knowledge/**`** — копируется всё, что **не** отфильтровано шаблонами из **`knowledge/public-kb.ignore`** (по смыслу как `.gitignore`: строка с `/` на конце = целое поддерево от корня `knowledge/`; без `/` = один файл; допускается `*`). |
| 11 | |
| 12 | **Group KB (`AI-Guiders/kb`, MCP `group`):** **SSOT общего знания** (ADR [011](adr/011-aiguiders-org-collaborative-kb-repo-v1.md) Accepted). Пары пишут PR / `export-to-org-kb.ps1`; routine **не** full replace (`bootstrap-org-kb.ps1` / `seed-org-kb.ps1 -Push` — только bootstrap/DR). **`seed-org-kb.ps1`** собирает `dist/group-kb/` (public slice + выборочный `work/projects/` по **`group-kb.ignore`**). Scope contour: [`work/org/scope-contour-map-v1.md`](work/org/scope-contour-map-v1.md). Runbook: [`work/projects/door-to-singularity/agent-notes-kb/templates/runbook-org-kb-federation-v1.md`](work/projects/door-to-singularity/agent-notes-kb/templates/runbook-org-kb-federation-v1.md). Сводка контуров: [`domains/agent-operations/map-kb-three-contours-v1.md`](domains/agent-operations/map-kb-three-contours-v1.md). |
| 13 | 3. **Корень артефакта kb-public** — в `dist/public-kb/` кладутся **`README.md`** и **`LICENSE`** (CC BY-SA 4.0) из **`scripts/kb-public-root/`** (для репозитория **kb-public** на GitHub и зеркалах). |
| 14 | 4. **Сайт документации (MkDocs)** — в репозитории **kb-public**: `docs/` (онбординг RU/EN), `mkdocs.yml`, workflow `docs-pages.yml`. Публикуется на **`https://<org>.github.io/kb-public/`** (пример: AI-Guiders). Онбординг для людей — **на сайте**, не в GitHub wiki. Сборка: `python tools/sync_knowledge_docs.py && mkdocs build`. |
| 15 | 5. **Первая строка файла** — если содержит подстроку **«НЕ ПУБЛИКОВАТЬ»**, файл в сборку **не** копируется (можно исключить единичный файл без правки `public-kb.ignore`). |
| 16 | 6. **Индексы роутера** — в копиях `index-knowledge-router-v1.md`, `index-knowledge-router-supplement-v1.md`, `index-knowledge-router-maintenance-v1.md` и `index-knowledge-router-safety-v1.md` под `knowledge/` сборка **удаляет** секции `## …`, которые ссылаются на `knowledge/*.md`, отсутствующие в публичном наборе. |
| 17 | |
| 18 | Сборку выполняют из **полного** клона **личного/командного канона** (репозиторий maintainer’а с `scripts/`) или из group-репо **`{ORG_SLUG}/kb`** после seed (зеркало `scripts/` для canon-maintainer). В артефакт kb-public попадают обрезанный **`agent-notes.md`**, отфильтрованный **`knowledge/`**, корневые **`README.md`** и **`LICENSE`** из **`scripts/kb-public-root/`**; каталог **`scripts/`** и операции **git push** в зеркало kb-public **в zip не входят**. Список remotes — **`knowledge/public-kb.push`** (в публичную сборку не копируется; шаблон `scripts/public-kb.push.example`). |
| 19 | |
| 20 | ### Что обычно в публичной kb |
| 21 | |
| 22 | По общему правилу п. 2 в публичный срез попадают типичные **`knowledge/*.md`**: плейбуки, индексы, доменные kb, **`knowledge/META/`** (Integrity POST и спеки), **этот `PUBLISHING.md`**, **`kb-one-pager-structure-and-protocols-v1.md`** (онлайн-онбординг: слои, маркеры, зачем в полном каноне есть `work/` и `personal/`), **`kb-protocols-and-entities-one-pager-v1.md`** (wiki-вход: протоколы и сущности Scope/Primary, схемы), **`worlds/knowledge-engineering/playbook-kb-operational-freshness-v1.md`** (свежесть знаний: fundamentals / operational / evidence, перепроверка любого домена; supplement `router-kb-operational-freshness`). В **`agent-notes.md`** в kb-public — секции **выше** `<!-- public-cut -->`, в т.ч. **`kb-operational-freshness-v1`**. Корневые **`README.md`** / **`LICENSE`** для репозитория kb-public — п. 3 «Механики». |
| 23 | |
| 24 | ### `agent-notes.md`: выше или ниже `public-cut` |
| 25 | |
| 26 | - **Ниже cut:** идентификация конкретного человека; личный диалог, имена, эмоциональный/внутренний контекст отношений; внутренние планы, не предназначенные для публикации; формулировки вида «X сказал», «для X» (X — конкретный собеседник); пересказ частного разговора. |
| 27 | - **Выше cut:** обезличенные принципы, паттерны, плейбуки, evidence — без привязки к лицу и без приватного контекста; если суть можно сказать через «пользователь» / «к агенту» без раскрытия чьей-то приватности. |
| 28 | - **Сомнение:** «идентифицирует или экспонирует пользователя/отношения?» — да → ниже cut; нет → выше. |
| 29 | |
| 30 | ### Личный слой и потребитель kb-public |
| 31 | |
| 32 | Личное (те же критерии, что для «ниже cut») — в **`knowledge/personal/`**; каталог создавай при необходимости, при желании краткий README («Личный контур. Не публиковать. См. `PUBLISHING.md`»). При **любом** шаринге форка/архива **не включай** `personal/` наружу. |
| 33 | |
| 34 | Если у тебя **только** выгрузка kb-public: дерева **`personal/`** и **`work/`** там **нет по дизайну** — это не ошибка сборки. |
| 35 | |
| 36 | ### Не попадает в kb-public (ориентир) |
| 37 | |
| 38 | - Всё, что покрывает **`knowledge/public-kb.ignore`** (в т.ч. префиксы **`personal/`**, **`work/`**, **`archive/`**, шаблон **`temp/*-scratch.md`**; сами **`public-kb.ignore`** и **`public-kb.push`**; сегмент пути **`.revisions/`** под `knowledge/`). |
| 39 | - **`knowledge/temp/`** — scratch агента: в kb-public только **`temp/README.md`** (каркас корзины); файлы `*-scratch.md` не экспортируются. |
| 40 | - **`knowledge/work/`** — оперативный слой канона (карточки репо, `project-id`, внутренние runbook’и); не публичный продукт KB. Карта дерева для держателей полного клона: **`knowledge/work/README.md`** (в kb-public не копируется вместе с `work/`). |
| 41 | - Файлы с **пометкой в первой строке** (типично `⚠️ НЕ ПУБЛИКОВАТЬ. Только локально.`) — см. п. 4 в «Механике». |
| 42 | |
| 43 | ### Авторинг под `worlds/` (попадает в kb-public) |
| 44 | |
| 45 | Файлы в **`knowledge/worlds/<slug>/`** (любой мир) копируются в публичную сборку, если не перекрыты `public-kb.ignore`. **Не полагаться на «само собой разумеется»:** перед коммитом в **каждом** slug вычищать внутреннюю operationalку, scope/project-id, ссылки на **`work/`**, машинные пути, внутренние бренды; в fundamentals — только общеизвестные вендоры/платформы. |
| 46 | |
| 47 | **Чеклист агента:** [`worlds/knowledge-engineering/playbook-kb-world-public-authoring-v1.md`](worlds/knowledge-engineering/playbook-kb-world-public-authoring-v1.md). |
| 48 | |
| 49 | ### Новое исключение по пути |
| 50 | |
| 51 | Добавь строку в **`knowledge/public-kb.ignore`**, пересобери — править `build-public-kb.ps1` не нужно. |
| 52 | |
| 53 | |