| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| sharixopen:knowledge:development:human_ai_handoff [2026/10/30 11:25] – [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", |
| "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": { | "editorial_review": { |
| "date": "2026-10-30", | "date": "2026-10-31", |
| "scope": "Уточнение пяти согласованных статей: конкретные действия, файлы и результаты; без изменения программных контрактов." | "scope": "boundary_correction", |
| | "public_boundary": "Публичная Wiki: ShariX Open и передача shared-изменения ответственному Platform. Внутренние действия Platform — intrawiki." |
| }, | }, |
| "editorial_source_check": { | "editorial_source_check": { |
| "sha256": "b763fdd351c71c6c6518253fba871efc7beb6f929badc54d863132fe7acea86e", | "sha256": "b763fdd351c71c6c6518253fba871efc7beb6f929badc54d863132fe7acea86e", |
| "finding": "update-* допускаются только при ASSEMBLY_KIND=open" | "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": "834445d21b3392698fc9d2afdadaefab171ddc31b1c8c4cafd887ab6410c0256", | "content_sha256": "62ca90aaf5770d9b02fdf475582b0170744d91fda469864fee1996c74badabee", |
| "schema": 1 | "schema": 1 |
| } | } |
| ~~NOCACHE~~ | ~~NOCACHE~~ |
| |
| Человек, получающий исправление, должен понимать, какой файл взять, к какой версии он подходит, где выполнить команды и как определить результат. Подготовка патча заканчивается цельной поставкой: сам патч, полный сценарий применения и сведения о выполненных проверках. | **Назначение:** [[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|Нейросеть]]. |
| | |
| | **Темы:** [[sharixopen:knowledge:classification:topics#peredacha_izmenenij|Разработка → Передача изменений]] · [[sharixopen:knowledge:classification:topics#proverka|Разработка → Проверка]]. |
| | |
| | |
| | |
| | Человек, получающий исправление, должен понимать, какой файл взять, к какой версии он подходит, где выполнить команды и как определить результат. Подготовка патча заканчивается цельной поставкой: |
| | |
| | * сам патч; |
| | * полный сценарий применения; |
| | * сведения о выполненных проверках. |
| |
| Эта страница задаёт порядок передачи. Конкретная поставка должна содержать команды для своей базы и фактических каталогов. Установка приложения описана в [[sharixopen:knowledge:operations:deploy|отдельной процедуре]]. | Эта страница задаёт порядок передачи. Конкретная поставка должна содержать команды для своей базы и фактических каталогов. Установка приложения описана в [[sharixopen:knowledge:operations:deploy|отдельной процедуре]]. |
| |
| ===== Что выяснить перед подготовкой ===== | ===== Что выяснить перед подготовкой ===== |
| * Какой продукт меняется: ShariX Open, общий модуль или собственный код Platform. | * Какая часть ShariX Open меняется: корневое приложение, отдельный модуль или общий (shared) компонент. |
| * Какие репозитории содержат изменение, их ветки и исходные commits. | * Какие репозитории содержат изменение, их ветки и исходные commits. |
| * Какие предыдущие патчи уже применены и опубликованы. Не готовить повторное применение того же изменения. | * Какие предыдущие патчи уже применены и опубликованы. Не готовить повторное применение того же изменения. |
| |
| Старую карточку и расшифровку сверяют с текущим кодом. Если нужного checkout нет, проверка похожего продукта не заменяет его. Сначала читают актуальные README, CODING_POLICY, AGENTS и инструкции Wiki относящихся к работе репозиториев. | Старую карточку и расшифровку сверяют с текущим кодом. Если нужного checkout нет, проверка похожего продукта не заменяет его. Сначала читают актуальные README, CODING_POLICY, AGENTS и инструкции Wiki относящихся к работе репозиториев. |
| | |
| | |
| | ===== Что можно включать в публичную поставку ===== |
| | Проверить LICENSE каждого репозитория и отметить отдельно: |
| | |
| | * открыт ли код; |
| | * является ли модуль общим; |
| | * где он используется. |
| | |
| | Эти признаки не заменяют друг друга. Конструктор сервиса и другие отдельно лицензируемые закрытые компоненты не являются открытым ядром только потому, что установлены рядом с ним. |
| | |
| | В публичную Wiki, открытый патч, архив исходников, граф и иллюстрацию не включают закрытый код или непубличные детали. Внутренняя поставка закрытого компонента требует разрешённого доступа и выполняется по его собственным инструкциям в intrawiki. Публичный сценарий заканчивается обозначением границы и передачей вопроса ответственным Platform. |
| | |
| | Проверять нужно фактическое содержимое файлов, а не только названия и .gitignore. Ссылка на закрытый элемент в общем UI-каталоге также не делает его реализацию публичной. Перечень — [[sharixopen:knowledge:architecture:model_ownership|закрытые компоненты и их границы]]. |
| |
| ===== Какие файлы передать ===== | ===== Какие файлы передать ===== |
| Для согласованной работы ShariX Open/shared и Platform общий код входит в патч ShariX Open с путями относительно корня установки. Собственные изменения Platform входят в её отдельный патч. На Platform общий код затем приходит опубликованным Git commit. Пустой патч для незатронутого продукта не нужен. Независимый компонент, например Moodle-плагин, получает свою поставку при отдельном задании. | Патч ShariX Open содержит пути относительно корня установки и перечисляет затронутые репозитории. В публичную поставку включается только разрешённый к открытому распространению общий код, который публикуется в своём репозитории. Для закрытого общего модуля действует отдельный внутренний порядок. После публикации shared-изменения нужно оповестить ответственного Platform для проверки, тестирования и принятия по intrawiki. Инструкция ShariX Open не включает команды, пути и собственные патчи другого продукта. Независимый компонент, например Moodle-плагин, получает отдельную поставку при соответствующем задании. |
| |
| В архив вместе с патчем включают полный сценарий применения. На сценарий дают отдельную ссылку. В нём должны быть следующие сведения: | В архив вместе с патчем включают полный сценарий применения. На сценарий дают отдельную ссылку. В нём должны быть следующие сведения: |
| | Проверка до изменения | Точные каталоги и команды проверки применимости патча к этой базе, включая затронутые вложенные репозитории. | | | Проверка до изменения | Точные каталоги и команды проверки применимости патча к этой базе, включая затронутые вложенные репозитории. | |
| | Применение | Команды записи, необходимые миграции, переводы, статика и синхронизация конфигурации именно для этого изменения. | | | Применение | Команды записи, необходимые миграции, переводы, статика и синхронизация конфигурации именно для этого изменения. | |
| | Публикация и получение | Какие репозитории публикуются и как другая установка получает общий код. | | | Публикация и передача | Какие репозитории и commits публикуются; какие сведения после публикации передать ответственному Platform, если изменён shared-модуль. | |
| | Запуск и приёмка | Кто выполняет действия, какая служба затрагивается, ожидаемый результат и способ его проверки. | | | Запуск и приёмка | Кто выполняет действия, какая служба затрагивается, ожидаемый результат и способ его проверки. | |
| | Остановка и восстановление | При каких ошибках прекратить выполнение, что сохранить и как вернуться к согласованному состоянию. | | | Остановка и восстановление | При каких ошибках прекратить выполнение, что сохранить и как вернуться к согласованному состоянию. | |
| |
| ===== Как сделать инструкцию связной ===== | ===== Как сделать инструкцию связной ===== |
| В начале назвать фактический каталог и пользователя. Для этого проекта подтверждены ''/opt/sharix-open-webapp-base'' и ''/opt/pre-sharix-platform-webapp-base''; другой путь нужно выяснить у владельца установки. Имена SSH-хостов, служб, веток и БД берут из действующей конфигурации. Если значение неизвестно, указать, где его получить, а не придумывать пример как готовую команду. | В начале назвать фактический каталог и пользователя. Для ShariX Open подтверждён ''/opt/sharix-open-webapp-base''; другой путь нужно выяснить у владельца этой установки. Имена SSH-хостов, служб, веток и БД берут из действующей конфигурации. Если значение неизвестно, указать, где его получить, а не придумывать пример как готовую команду. |
| |
| Каждый следующий шаг использует результат предыдущего. Если нужно ввести параметр, объяснить его назначение и последующее использование. Все упомянутые файлы должны входить в поставку или иметь точный способ получения. Рядом с действием указывается, под кем его выполнить: deploy и root выполняют разные части процедуры. | Каждый следующий шаг использует результат предыдущего. Если нужно ввести параметр, объяснить его назначение и последующее использование. Все упомянутые файлы должны входить в поставку или иметь точный способ получения. Рядом с действием указывается, под кем его выполнить: deploy и root выполняют разные части процедуры. |
| |
| В конце разделить **«Выполнено автором»**, **«Выполняет оператор»** и **«Не проверено»**. Указать наблюдаемое изменение для пользователя и ожидаемые сообщения оператора. Наличие diff или успешного импорта Python не заменяет эти сведения. | В конце выделить три группы: |
| | |
| | * **Выполнено автором.** |
| | * **Выполняет оператор.** |
| | * **Не проверено.** |
| | |
| | Указать наблюдаемое изменение для пользователя и ожидаемые сообщения оператора. Наличие diff или успешного импорта Python не заменяет эти сведения. |
| |
| ===== Порядок применения подготовленного патча ===== | ===== Порядок применения подготовленного патча ===== |
| - Выполняет проверки применимости из сценария. Для патча нескольких репозиториев одной проверки корневого Git недостаточно. При несовпадении фрагмента или появлении ''.rej'' останавливается и передаёт состояние автору поставки. | - Выполняет проверки применимости из сценария. Для патча нескольких репозиториев одной проверки корневого Git недостаточно. При несовпадении фрагмента или появлении ''.rej'' останавливается и передаёт состояние автору поставки. |
| - Применяет изменение, проверяет результат и публикует согласованный набор репозиториев штатным ''repositories.sh''. Если в ShariX Open используются отдельные ветки развёртывания — следует порядку ''update-start → update-publish → update-finish''. Подробнее: [[sharixopen:knowledge:development:repository_flow|передача общего кода]]. | - Применяет изменение, проверяет результат и публикует согласованный набор репозиториев штатным ''repositories.sh''. Если в ShariX Open используются отдельные ветки развёртывания — следует порядку ''update-start → update-publish → update-finish''. Подробнее: [[sharixopen:knowledge:development:repository_flow|передача общего кода]]. |
| - Другая установка получает опубликованные общие commits через Git. Затем выполняются необходимые для изменения действия установки и проверяются версии. | - После публикации shared-изменения автор оповещает ответственного Platform и передаёт commits, результаты проверок и условия совместимости. Ответственный выполняет проверку, тестирование и принятие в общий код по intrawiki; эти действия не продолжают публичный сценарий ShariX Open. |
| |
| Для уже подготовленных исходников обычные фазы под deploy login выглядят так: | Для уже подготовленных исходников обычные фазы под deploy login выглядят так: |
| ./bin/check_acceptance.sh --with-runtime-audit | ./bin/check_acceptance.sh --with-runtime-audit |
| </code> | </code> |
| Блок выполняется из фактического корня установки. ''deploy'' готовит зависимости, конфигурацию, схему и данные согласно установщику. ''--use-current-checkouts'' означает, что Git не обновляется этим запуском; ''--no-restart'' откладывает перезапуск до следующей команды. Связка ''&&'' прекращает последовательность при ошибке. Успех подготовки ещё не означает, что приложение запущено. | Блок выполняется из фактического корня установки. Назначение команд и параметров: |
| | |
| | * ''deploy'' — готовит зависимости, конфигурацию, схему и данные согласно установщику. |
| | * ''--use-current-checkouts'' — Git не обновляется этим запуском. |
| | * ''--no-restart'' — перезапуск откладывается до следующей команды. |
| | * ''&&'' — последовательность прекращается при ошибке. |
| | |
| | Успех подготовки ещё не означает, что приложение запущено. |
| |
| Точный сценарий указывает нужные миграции, переводы и статику и учитывает, что уже делает deploy. Новые файлы миграций не генерируют автоматически на рабочем сервере вместо подготовленной разработки. | Точный сценарий указывает нужные миграции, переводы и статику и учитывает, что уже делает deploy. Новые файлы миграций не генерируют автоматически на рабочем сервере вместо подготовленной разработки. |
| |
| ===== Уточнение команд: 30.10.2026 ===== | ===== Уточнение команд: 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. Для Platform этот набор команд не применяется. | В [[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~~ |
| |