Источник истины#

Этот документ фиксирует иерархию источников истины, чтобы green-robot, продуктовые репозитории и их README.md не расходились по смыслу.

1. Уровни истины#

1.1. Published canonical#

Published canonical живет в green-robot и используется для:

  • пользовательской документации;

  • регистрации и нормативного пакета;

  • каталога продуктов и приборов;

  • общей платформенной архитектуры;

  • описания отраслевых применений.

Эти документы считаются внешне согласованной версией и не должны зависеть от знания внутренней структуры кода отдельных репозиториев.

1.2. Engineering canonical#

Engineering canonical живет в инженерных репозиториях и используется для:

  • реализации продукта;

  • локальной архитектуры;

  • build/run/test/deploy деталей;

  • внутренних API/firmware/hardware нюансов;

  • developer и operator workflows конкретного продукта.

Такие документы могут быть глубже и быстрее меняться, чем published-слой.

1.3. Agent-facing canonical#

README.md в корне каждого репозитория — обязательный agent-facing source-of-truth.

Его задача:

  • быстро объяснить, за что отвечает репозиторий;

  • указать соответствующий продукт и published-карточку в green-robot;

  • указать локальные engineering source-of-truth разделы;

  • задать правила синхронизации документации.

README.md не входит в Jupyter Book, но обязателен для согласованной работы агентов и разработчиков.

2. Приоритет при конфликте#

  1. Для пользовательского, регистрационного, продуктового и платформенного описания приоритет у green-robot.

  2. Для локальной реализации и инженерных деталей приоритет у product/hardware repo.

  3. Если конфликт затрагивает общие контракты или границы продуктов, сначала обновляется green-robot, затем локальные repo.

  4. Если конфликт затрагивает только локальную реализацию без изменения published-смысла, обновляется инженерный repo; green-robot меняется только при необходимости публикации нового смысла.

  5. Если меняется связка iP-1220 -> green-robot-go -> iP-1510, включая published contract project/monitoring/ws, auth/access, локальный интерфейс L1, верхний уровень L2 или update/deploy contour, published docs green-robot и инженерные docs должны синхронизироваться в том же push/PR.

Дополнение по инженерным семействам:

  • iC-4, iO-5, iU-6 закреплены как engineering-семейства за ../ioot-pro-hardware;

  • iD-7 рассматривается как отдельный контур механики и электрики и должен иметь собственный engineering repo.

3. Что нельзя делать локально#

В продуктовых репозиториях нельзя молча переопределять:

  • общую архитектурную модель платформы;

  • продуктовые идентификаторы и классификацию;

  • общие API/event/security conventions;

  • published-состав коробочного отраслевого решения.

Такие изменения должны проходить через green-robot.

4. Минимальный набор ссылок в каждом README#

Каждый корневой README.md должен содержать:

  • продукт или контур, за который отвечает repo;

  • published canonical карточку в green-robot;

  • локальный engineering source-of-truth;

  • правила синхронизации;

  • границы ответственности команды/repo.