| Следующая версия | Предыдущая версия |
| sharixopen:knowledge:development:human_ai_handoff [2026/10/29 08:30] – [sharixknowledge] approved package sx_knowledge_api_open | sharixopen:knowledge:development:human_ai_handoff [2026/10/31 21:11] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open |
|---|
| "page": "sharixopen:knowledge:development:human_ai_handoff", | "page": "sharixopen:knowledge:development:human_ai_handoff", |
| "area": "open", | "area": "open", |
| "type": "procedure", | "type": "policy", |
| "title": "Результат разработки для человека: автор, нейросеть и оператор", | "title": "Как подготовить изменение и инструкцию для оператора", |
| "status": "review", | "status": "review", |
| "schema_version": 1, | "schema_version": 1, |
| "ShariXKnowledgeVerification", | "ShariXKnowledgeVerification", |
| "ShariXKnowledgeOpenOperationsDeploy" | "ShariXKnowledgeOpenOperationsDeploy" |
| | ], |
| | "applies_to": [ |
| | "ShariXKnowledgeOpenKnowledgeDevelopmentPractice" |
| ] | ] |
| }, | }, |
| "extensions": { | "extensions": { |
| "taxonomy": { | "taxonomy": { |
| "domain": "development", | "domain": "standards", |
| "lifecycle": "documented", | "lifecycle": "not_applicable", |
| "parents": [ | "parents": [ |
| "ShariXKnowledgeMethodsStart" | "ShariXKnowledgeMethodsStart" |
| ], | ], |
| "terms": [] | "terms": [ |
| | "audience_developer", |
| | "audience_operator", |
| | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "product_shared", |
| | "material_policy", |
| | "topic_development_delivery", |
| | "topic_development_verification" |
| | ], |
| | "component": "ShariX Open" |
| }, | }, |
| "source_evidence": [ | "source_evidence": [ |
| } | } |
| ], | ], |
| "reviewed_on": "2026-10-29" | "reviewed_on": "2026-10-29", |
| | "editorial_review": { |
| | "date": "2026-10-31", |
| | "scope": "boundary_correction", |
| | "public_boundary": "Публичная Wiki: ShariX Open и передача shared-изменения ответственному Platform. Внутренние действия Platform — intrawiki." |
| | }, |
| | "editorial_source_check": { |
| | "date": "2026-10-30", |
| | "repository": "sharix-open-webapp-base", |
| | "commit": "c19e6651449483d898f5ae33548f97c0ef7e1cd2", |
| | "path": "bin/repositories.sh", |
| | "sha256": "b763fdd351c71c6c6518253fba871efc7beb6f929badc54d863132fe7acea86e", |
| | "finding": "update-* допускаются только при ASSEMBLY_KIND=open" |
| | }, |
| | "license_boundary_review": { |
| | "date": "2026-10-31", |
| | "scope": "shared не является лицензией; публичная документация не раскрывает реализацию закрытых модулей", |
| | "closed_modules_license_code": "sharix-proprietary-v1" |
| | }, |
| | "list_format_review": { |
| | "date": "2026-10-31", |
| | "scope": "Перечисления полей, результатов и проверок оформлены списками; исходники, команды, таблицы, схемы и лицензионные границы сохранены." |
| | }, |
| | "classification": { |
| | "schema": "sharix.knowledge.classification.v1", |
| | "products": [ |
| | "sharix_open", |
| | "shared" |
| | ], |
| | "audiences": [ |
| | "developer", |
| | "operator", |
| | "reviewer", |
| | "ai" |
| | ], |
| | "material": "policy", |
| | "topics": [ |
| | "development/delivery", |
| | "development/verification" |
| | ], |
| | "tag_terms": [ |
| | "audience_developer", |
| | "audience_operator", |
| | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "product_shared", |
| | "material_policy", |
| | "topic_development_delivery", |
| | "topic_development_verification" |
| | ], |
| | "registry_document": "ShariXKnowledgeClassification", |
| | "state_meaning": "lifecycle относится к описываемому коду, а status к редакции документа; implemented не означает успешный runtime тест" |
| | }, |
| | "classification_review": { |
| | "date": "2026-10-31", |
| | "source": "Содержание текущей страницы и проверенный словарь классификации", |
| | "body_scope": "classification_and_navigation_only" |
| | }, |
| | "owner_clarification": { |
| | "date": "2026-11-01", |
| | "basis": "explicit owner instruction", |
| | "scope": "disabled optional modules and immediate subject-documentation updates", |
| | "runtime_claim": false |
| | } |
| }, | }, |
| "content_sha256": "b278fbe0de14d64a89d57550d93bc0105a95a79ea2e65b60a0770e2c9823e69f", | "content_sha256": "62ca90aaf5770d9b02fdf475582b0170744d91fda469864fee1996c74badabee", |
| "schema": 1 | "schema": 1 |
| } | } |
| </sharix-knowledge-meta> | </sharix-knowledge-meta> |
| ====== Результат разработки для человека: автор, нейросеть и оператор ====== | ====== Как подготовить изменение и инструкцию для оператора ====== |
| ~~NOCACHE~~ | ~~NOCACHE~~ |
| |
| **Раздел:** [[sharixopen:knowledge:development:methodology:start|Методология разработки]]. **Назначение:** согласованный подход к подготовке и передаче изменений; это требование к работе автора, а не заявление о наличии автоматической системы внедрения. | **Назначение:** [[sharixopen:knowledge:classification:materials#politika_i_pravila|Политика и правила]]. **Продукт:** [[sharixopen:knowledge:classification:products#sharix_open|ShariX Open]] · [[sharixopen:knowledge:classification:products#obschij_komponent|Общий компонент]]. |
| |
| ===== Для разработчика и оператора ===== | **Для кого:** [[sharixopen:knowledge:classification:audiences#razrabotchik|Разработчик]] · [[sharixopen:knowledge:classification:audiences#operator_razvjortyvanija|Оператор развёртывания]] · [[sharixopen:knowledge:classification:audiences#recenzent_i_prijomschik|Рецензент и приёмщик]] · [[sharixopen:knowledge:classification:audiences#nejroset|Нейросеть]]. |
| Начать с наблюдаемой проблемы и ожидаемого результата. Определить продукт, installation root, owners и текущие revisions, уже применённые этапы, затронутые данные и потребителей. Условия из старой карточки или расшифровки сверяются заново. Рабочие ветки и installed modules определяет конфигурация и статус репозиториев; отсутствие checkout не компенсируется похожим продуктом. | |
| |
| Человек должен получить небольшой, цельный и проверяемый комплект: изменение, основание его применимости, полный сценарий применения и критерии результата. Для согласованных изменений ShariX Open/shared и Platform поставка разделяется по продуктам: общий код входит в root patch ShariX Open, Platform-owned адаптации — в её root patch. Shared на Platform приходит опубликованным Git commit, а не повторным применением первого patch. Если изменений для продукта нет, не создают пустой patch ради количества файлов. Самостоятельный внешний продукт, например Moodle plugin, имеет собственную базу и сценарий при наличии такого задания. | **Темы:** [[sharixopen:knowledge:classification:topics#peredacha_izmenenij|Разработка → Передача изменений]] · [[sharixopen:knowledge:classification:topics#proverka|Разработка → Проверка]]. |
| |
| ^ Часть поставки ^ Что в ней необходимо ^ | |
| | Изменение | Root patch с путями относительно installation root, перечень owners и точная исходная база каждого; зависимость от предыдущих этапов. | | |
| | Полный сценарий | Роли, подготовка и перенос файлов, точные каталоги/команды, preflight, dry-run, применение, source publication/pull, deploy/restart, приёмка, остановка и восстановление. | | |
| | Свидетельства | Реально выполненные команды и результаты, отдельно source-анализ, локальные и серверные проверки; невыполненные пункты и причина. | | |
| | Понятный итог | Как изменится действие пользователя, что увидит оператор при успехе и при существенных отказах, ограничения и необходимое решение владельца. | | |
| |
| Сценарий помещается в тот же архив, что и patch, и доступен отдельной ссылкой. Один diff, многотомный набор промежуточных файлов или общий совет «обновите зависимости» не заменяют его. Не требуют распаковывать исходники поверх checkout и не создают второй installer. В командах указывают ''/tmp/ИМЯ.patch'', когда оператор разместит patch в ''/tmp''; автор не заявляет, что сам уже загрузил его на сервер. | |
| |
| ===== Для нейросети: контракт выдаваемого результата ===== | Человек, получающий исправление, должен понимать, какой файл взять, к какой версии он подходит, где выполнить команды и как определить результат. Подготовка патча заканчивается цельной поставкой: |
| - В начале установить scope и прочитать текущие README/CODING_POLICY/AGENTS владельцев и актуальные Wiki runbooks. Различать исходники продукта, shared и работающую установку; не выдавать название доски за достаточное доказательство. | |
| - Проанализировать цепочку route → view/form/serializer → service/policy → модель/событие → consumer. Найти существующую функцию и библиотечный UI-элемент до создания нового. Не фиксировать только поверхностное совпадение имени. | |
| - Сохранять единственного владельца бизнес-состояния. Для handlers сохранять typed Blockly → deterministic Python → provenance; учитывать внешние пользовательские действия, API, таймеры и доставку событий. BPMN — описание, не исполняемый источник runtime. | |
| - Подготовить цельную поставку на проверенной базе. Дать человеку короткий маршрут: какой файл взять, где он должен лежать, из какого каталога и под какой ролью выполнить действия, что является успехом, когда остановиться. | |
| - Явно перечислить «Выполнено автором», «Выполняет оператор», «Не проверено». Не писать «всё работает» по compile/import или по результату другого продукта. Не скрывать предупреждения и не выдавать запланированную миграцию за выполненную. | |
| - Не угадывать SSH, systemd unit, секреты, актуальную ветку, базу данных и права пользователя. Неизвестное обозначать параметром с точным способом получения через штатную конфигурацию/runtime identity. Секреты не переносить в текст, логи и команды. | |
| - Проверить инструкцию как последовательность человеческих действий: есть ли все входные файлы, не требует ли шаг результата, который ещё не создан, корректны ли пути и роли, понятно ли поведение после отказа. Ссылки на артефакты должны вести к реальным подготовленным файлам. | |
| |
| Эти требования не дают дополнительных разрешений: подготовка patch, публикация Git, Wiki и внедрение на сервере — разные действия с собственным поручением. Необратимые или неавторизованные операции не скрывают внутри шага «проверка». | * сам патч; |
| | * полный сценарий применения; |
| | * сведения о выполненных проверках. |
| |
| ===== Сценарий для подготовленного source patch ===== | Эта страница задаёт порядок передачи. Конкретная поставка должна содержать команды для своей базы и фактических каталогов. Установка приложения описана в [[sharixopen:knowledge:operations:deploy|отдельной процедуре]]. |
| Сначала прочитать [[sharixopen:knowledge:operations:deploy|актуальную процедуру установки ShariX Open]] и [[sharixopen:knowledge:development:upstream_update|публикацию owning repositories]]. Здесь фиксируется порядок передачи, а не универсальная команда для любого сервера. | |
| |
| - Зафиксировать backup/restore point для затронутых данных и согласовать окно, если требуется schema/data change. Проверить статус всех owners, отсутствие незавершённых Git операций и совпадение базы; отдельно учесть частично применённый прошлый этап. | ===== Что выяснить перед подготовкой ===== |
| - Оператор переносит подготовленные файлы в ''/tmp''. Под назначенным deploy login переходит в фактический installation root. Для данного проекта последние подтверждённые пути — ''/opt/sharix-open-webapp-base'' и ''/opt/pre-sharix-platform-webapp-base''; другой путь подтверждается заново. | * Какая часть ShariX Open меняется: корневое приложение, отдельный модуль или общий (shared) компонент. |
| - Выполнить предусмотренный сценарием dry-run на точной базе. Применение multi-repository root patch должно учитывать самостоятельные owners: успешный dry-run только корневого Git не подтверждает файлы модулей. Не продолжать после failed hunk и не игнорировать ''.rej''; сверить фактические before/after и исправить поставку. | * Какие репозитории содержат изменение, их ветки и исходные commits. |
| - Проверить изменения, опубликовать согласованный набор owning repositories штатным ''repositories.sh''. При configured non-operational branch использовать документированный ''update-start → update-publish → update-finish''. Consumer получает опубликованный shared-код через Git; затем сверяет SHA. | * Какие предыдущие патчи уже применены и опубликованы. Не готовить повторное применение того же изменения. |
| - Выполнить точные дополнительные шаги данного изменения: необходимые миграции/переводы/static/env sync. Они должны быть названы в сценарии; не генерировать новые migrations автоматически на рабочем сервере. | * Какая установка будет обновляться, где она находится, какие данные и модули затрагиваются. |
| - Для уже подготовленного исходного состояния от deploy выполнить следующие фазы, останавливаясь при ошибке. | * Какие права нужны человеку для применения и какие действия выполнит администратор. |
| |
| | Старую карточку и расшифровку сверяют с текущим кодом. Если нужного checkout нет, проверка похожего продукта не заменяет его. Сначала читают актуальные README, CODING_POLICY, AGENTS и инструкции Wiki относящихся к работе репозиториев. |
| | |
| | |
| | ===== Что можно включать в публичную поставку ===== |
| | Проверить LICENSE каждого репозитория и отметить отдельно: |
| | |
| | * открыт ли код; |
| | * является ли модуль общим; |
| | * где он используется. |
| | |
| | Эти признаки не заменяют друг друга. Конструктор сервиса и другие отдельно лицензируемые закрытые компоненты не являются открытым ядром только потому, что установлены рядом с ним. |
| | |
| | В публичную Wiki, открытый патч, архив исходников, граф и иллюстрацию не включают закрытый код или непубличные детали. Внутренняя поставка закрытого компонента требует разрешённого доступа и выполняется по его собственным инструкциям в intrawiki. Публичный сценарий заканчивается обозначением границы и передачей вопроса ответственным Platform. |
| | |
| | Проверять нужно фактическое содержимое файлов, а не только названия и .gitignore. Ссылка на закрытый элемент в общем UI-каталоге также не делает его реализацию публичной. Перечень — [[sharixopen:knowledge:architecture:model_ownership|закрытые компоненты и их границы]]. |
| | |
| | ===== Какие файлы передать ===== |
| | Патч ShariX Open содержит пути относительно корня установки и перечисляет затронутые репозитории. В публичную поставку включается только разрешённый к открытому распространению общий код, который публикуется в своём репозитории. Для закрытого общего модуля действует отдельный внутренний порядок. После публикации shared-изменения нужно оповестить ответственного Platform для проверки, тестирования и принятия по intrawiki. Инструкция ShariX Open не включает команды, пути и собственные патчи другого продукта. Независимый компонент, например Moodle-плагин, получает отдельную поставку при соответствующем задании. |
| | |
| | В архив вместе с патчем включают полный сценарий применения. На сценарий дают отдельную ссылку. В нём должны быть следующие сведения: |
| | |
| | ^ Раздел сценария ^ Что указать ^ |
| | | База и состав | Исходные commits каждого репозитория, список файлов, зависимость от предыдущих этапов и совместимость с ними. | |
| | | Подготовка | Нужные доступы, резервные копии, состояние репозиториев и способ переноса файлов. | |
| | | Проверка до изменения | Точные каталоги и команды проверки применимости патча к этой базе, включая затронутые вложенные репозитории. | |
| | | Применение | Команды записи, необходимые миграции, переводы, статика и синхронизация конфигурации именно для этого изменения. | |
| | | Публикация и передача | Какие репозитории и commits публикуются; какие сведения после публикации передать ответственному Platform, если изменён shared-модуль. | |
| | | Запуск и приёмка | Кто выполняет действия, какая служба затрагивается, ожидаемый результат и способ его проверки. | |
| | | Остановка и восстановление | При каких ошибках прекратить выполнение, что сохранить и как вернуться к согласованному состоянию. | |
| | |
| | Распаковка исходников поверх работающего checkout и новый самодельный установщик не заменяют штатный порядок. Оператор переносит патчи в ''/tmp'', поэтому в его командах указывают ''/tmp/ИМЯ.patch''. Автор отдельно сообщает, что файлы подготовлены локально, а перенос на сервер выполняет оператор. Изображения после серверного обновления загружает агент через согласованный API; оператору не поручают установку иллюстраций или запуск клиентского CLI для неё. |
| | |
| | ===== Как сделать инструкцию связной ===== |
| | В начале назвать фактический каталог и пользователя. Для ShariX Open подтверждён ''/opt/sharix-open-webapp-base''; другой путь нужно выяснить у владельца этой установки. Имена SSH-хостов, служб, веток и БД берут из действующей конфигурации. Если значение неизвестно, указать, где его получить, а не придумывать пример как готовую команду. |
| | |
| | Каждый следующий шаг использует результат предыдущего. Если нужно ввести параметр, объяснить его назначение и последующее использование. Все упомянутые файлы должны входить в поставку или иметь точный способ получения. Рядом с действием указывается, под кем его выполнить: deploy и root выполняют разные части процедуры. |
| | |
| | В конце выделить три группы: |
| | |
| | * **Выполнено автором.** |
| | * **Выполняет оператор.** |
| | * **Не проверено.** |
| | |
| | Указать наблюдаемое изменение для пользователя и ожидаемые сообщения оператора. Наличие diff или успешного импорта Python не заменяет эти сведения. |
| | |
| | ===== Порядок применения подготовленного патча ===== |
| | - Сохранить необходимые резервные копии и согласовать окно работы, если меняются схема или данные. Проверить затронутые репозитории и отсутствие незавершённых Git-операций. |
| | - Оператор размещает файлы в ''/tmp'' и под назначенным deploy login переходит в фактический каталог установки. |
| | - Выполняет проверки применимости из сценария. Для патча нескольких репозиториев одной проверки корневого Git недостаточно. При несовпадении фрагмента или появлении ''.rej'' останавливается и передаёт состояние автору поставки. |
| | - Применяет изменение, проверяет результат и публикует согласованный набор репозиториев штатным ''repositories.sh''. Если в ShariX Open используются отдельные ветки развёртывания — следует порядку ''update-start → update-publish → update-finish''. Подробнее: [[sharixopen:knowledge:development:repository_flow|передача общего кода]]. |
| | - После публикации shared-изменения автор оповещает ответственного Platform и передаёт commits, результаты проверок и условия совместимости. Ответственный выполняет проверку, тестирование и принятие в общий код по intrawiki; эти действия не продолжают публичный сценарий ShariX Open. |
| | |
| | Для уже подготовленных исходников обычные фазы под deploy login выглядят так: |
| <code bash> | <code bash> |
| ./bin/install.sh deploy --strict --use-current-checkouts --permissions=check --deps=auto --no-restart && | ./bin/install.sh deploy --strict --use-current-checkouts --permissions=check --deps=auto --no-restart && |
| ./bin/check_acceptance.sh --with-runtime-audit | ./bin/check_acceptance.sh --with-runtime-audit |
| </code> | </code> |
| | Блок выполняется из фактического корня установки. Назначение команд и параметров: |
| |
| Это последовательность фаз, а не разрешение выполнить весь блок после отказа первой команды. ''deploy'' может менять schema/config/data; ''--use-current-checkouts'' исключает обновление Git, ''--no-restart'' откладывает запуск. Успех preparation не доказывает готовность runtime state. | * ''deploy'' — готовит зависимости, конфигурацию, схему и данные согласно установщику. |
| | * ''--use-current-checkouts'' — Git не обновляется этим запуском. |
| | * ''--no-restart'' — перезапуск откладывается до следующей команды. |
| | * ''&&'' — последовательность прекращается при ошибке. |
| |
| Если restart сообщает ''Restart permissions are not installed'' или ''Runtime state needs its managed isolated directory'', сверить сообщение с текущим runbook: необходимый штатный root ''activate --strict --use-current-checkouts --permissions=check'' готовит managed state/grants. Затем новый deploy login и повтор только restart. Root bootstrap, полный deploy, рекурсивный repair, ручной chmod или симлинк не назначают вместо диагностики. | Успех подготовки ещё не означает, что приложение запущено. |
| |
| HTTP-диагностика после restart рекомендательная: отсутствие ответа/таймаут/HTTP-код остаётся видимым WARNING и не подменяет исход перезапуска службы. Permissions/service state/source/provenance errors блокируют продолжение. Имена units берутся из runtime identity, не из hostname. | Точный сценарий указывает нужные миграции, переводы и статику и учитывает, что уже делает deploy. Новые файлы миграций не генерируют автоматически на рабочем сервере вместо подготовленной разработки. |
| |
| ===== Остановка и восстановление ===== | ===== Если запуск или проверка не удались ===== |
| При несовпадении базы, failed hunk, source conflict, незавершённой миграции или blocking guard не переходить к следующей фазе. Сначала записать, что фактически выполнено, и сравнить текущее состояние с ожидаемым. Обратное применение patch допустимо только после проверки его применимости и отсутствия новых изменений; rollback данных/миграций может требовать отдельного плана и backup. Не выполнять ''reset --hard'', удаление файлов или повтор неизвестного POST ради «чистого» результата. | При сообщениях ''Restart permissions are not installed'' или ''Runtime state needs its managed isolated directory'' сверяют текущую процедуру: нужный штатный root ''activate --strict --use-current-checkouts --permissions=check'' подготавливает каталоги и разрешения. Затем выполняется новый deploy login и повтор только restart. Полная установка, рекурсивное исправление прав, ручной chmod или создание симлинков не подставляются вместо выяснения этой причины. |
| |
| ===== Обновление знаний ===== | HTTP-диагностика после restart рекомендательная. Таймаут, сетевой отказ или HTTP-код сохраняются как WARNING и исследуются отдельно от результата перезапуска. Ошибки состояния службы, прав и проверки исходников блокируют продолжение. Имя systemd unit берут из конфигурации этой установки, а не из hostname. |
| Одновременно уточняют контракт владельца, README и контекстную web-справку по роли. Wiki описывает использование и разработку продукта, Moodle — учебные объяснения. Изменённую страницу перечитывают, сохраняют её идентичность и concurrent edits, используют preview/base hash и каноническую GET-сверку. Уведомление даётся одним обзором связного этапа со ссылками; внутренние страницы не попадают в публичную группу. | |
| | При ошибке патча, конфликте исходников или незавершённой миграции не переходят к следующей фазе. Сначала фиксируют выполненные шаги и состояние. Обратное применение патча проверяют заново; восстановление БД может потребовать резервной копии и отдельного плана. ''reset --hard'', удаление файлов и повтор записи с неизвестным результатом не являются универсальным восстановлением. |
| | |
| | ===== Для нейросети: что проверить в собственном результате ===== |
| | - Проследить изменение от маршрута и формы/API до функции, модели, событий и вызывающих модулей. Найти существующую реализацию и библиотечный UI-элемент перед созданием новых. |
| | - Сохранять ответственность за данные у их модуля. Для обработчиков изменять Blockly-модель, генерировать Python и проверять соответствие. В сценариях учитывать пользователя, API, таймеры и события; BPMN описывает их, а не исполняется просмотрщиком Wiki. |
| | - Прочитать свою инструкцию как получатель: все ли файлы доступны, связаны ли шаги, совпадают ли пути, названы ли пользователи и условия остановки. |
| | - Дать реальные ссылки на подготовленные файлы. Не заявлять серверную проверку по локальному результату или по другому продукту, не скрывать предупреждения и не включать дополнительные действия без поручения. |
| | |
| | ===== Как обновить документацию ===== |
| | Уточнить README нужного модуля, его описание в Wiki и контекстную справку изменённой страницы по роли пользователя. Учебные объяснения и примеры кода относятся к Moodle. Перед публикацией перечитать текущую страницу, сохранить правки других авторов, выполнить preview и сравнить сохранённый текст повторным чтением. |
| | |
| | Обновления Wiki обычно сопровождаются одним обзором этапа со ссылками. Если владелец просит выполнить редактуру без уведомлений, это указание применяется к этому проходу. Общие правила подтверждения результата — [[sharixopen:knowledge:development:verification|приёмка изменений]]. |
| |
| ===== Проверенная исходная база: 29.10.2026 ===== | ===== Проверенная исходная база: 29.10.2026 ===== |
| * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/ticket_blockly_codegen.py|sharix-open-handlers-backend: ticket_blockly_codegen.py]] — 50baf376e224. | * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/ticket_blockly_codegen.py|sharix-open-handlers-backend: ticket_blockly_codegen.py]] — 50baf376e224. |
| * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/tools/check_canonical_ticket_codegen.py|sharix-open-handlers-backend: tools/check_canonical_ticket_codegen.py]] — 50baf376e224. | * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/tools/check_canonical_ticket_codegen.py|sharix-open-handlers-backend: tools/check_canonical_ticket_codegen.py]] — 50baf376e224. |
| | |
| | ===== Уточнение команд: 30.10.2026 ===== |
| | В [[https://git.sharix-app.org/ShariX_Open/sharix-open-webapp-base/src/commit/c19e6651449483d898f5ae33548f97c0ef7e1cd2/bin/repositories.sh|bin/repositories.sh]] функция require_open_update_mode разрешает update-* только ShariX Open. Эти команды относятся к процедуре ShariX Open. |
| | |
| | ===== Уточнения владельца сразу фиксируются в документации ===== |
| | По поручению владельца от 01.11.2026 новое согласованное требование, меняющее продуктовый контракт, права, границы модулей, workflow или применимость проверок, сразу заносится в соответствующую предметную Wiki в рамках того же задания. Правило не должно оставаться только в переписке до следующего прохода. |
| | |
| | В том же изменении устранить противоречия затронутых AGENTS.md, CODING_POLICY и README. Более позднее явное уточнение владельца имеет приоритет перед устаревшим локальным текстом. Учебные объяснения остаются в Moodle; предметные правила использования и разработки — в Wiki. |
| | |
| | Отдельно обозначать согласованный контракт, подготовленное изменение исходников и проверенный результат установки. Перед записью перечитать текущую страницу и сохранить чужие изменения; после preview/publish выполнить GET/hash-сверку и предусмотренное уведомление со списком страниц и ссылками. Запись правила в Wiki не является разрешением на deploy и не подтверждает серверную приёмку. |
| |
| ~~SHARIX_KNOWLEDGE_RELATED~~ | ~~SHARIX_KNOWLEDGE_RELATED~~ |
| |