| Следующая версия | Предыдущая версия |
| sharixopen:knowledge:development:source_bundle_context [2026/10/30 09:56] – [sharixknowledge] approved package sx_knowledge_api_open | sharixopen:knowledge:development:source_bundle_context [2026/10/31 11:24] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open |
|---|
| "area": "open", | "area": "open", |
| "type": "procedure", | "type": "procedure", |
| "title": "Архив исходников, Graphify и выбор контекста", | "title": "Архив исходников ShariX Open: получение и работа с Graphify", |
| "status": "review", | "status": "review", |
| "schema_version": 1, | "schema_version": 1, |
| "taxonomy": { | "taxonomy": { |
| "domain": "development", | "domain": "development", |
| "lifecycle": "documented", | "lifecycle": "implemented", |
| "parents": [ | "parents": [ |
| "ShariXKnowledgeMethodsStart" | "ShariXKnowledgeMethodsStart" |
| ], | ], |
| "terms": [] | "terms": [ |
| | "audience_developer", |
| | "audience_integrator", |
| | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "material_howto", |
| | "topic_development_context", |
| | "topic_knowledge_source_evidence", |
| | "source_evidence" |
| | ], |
| | "component": "sharix-open-tz" |
| }, | }, |
| "source_evidence": [ | "source_evidence": [ |
| } | } |
| ], | ], |
| "reviewed_on": "2026-10-30" | "reviewed_on": "2026-10-30", |
| | "editorial_review": { |
| | "date": "2026-10-30", |
| | "scope": "Уточнение пяти согласованных статей: конкретные действия, файлы и результаты; без изменения программных контрактов." |
| | }, |
| | "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" |
| | ], |
| | "audiences": [ |
| | "developer", |
| | "integrator", |
| | "reviewer", |
| | "ai" |
| | ], |
| | "material": "howto", |
| | "topics": [ |
| | "development/context", |
| | "knowledge/source_evidence" |
| | ], |
| | "tag_terms": [ |
| | "audience_developer", |
| | "audience_integrator", |
| | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "material_howto", |
| | "topic_development_context", |
| | "topic_knowledge_source_evidence", |
| | "source_evidence" |
| | ], |
| | "registry_document": "ShariXKnowledgeClassification", |
| | "state_meaning": "lifecycle относится к описываемому коду, а status к редакции документа; implemented не означает успешный runtime тест" |
| | }, |
| | "classification_review": { |
| | "date": "2026-10-31", |
| | "source": "Содержание текущей страницы и проверенный словарь классификации", |
| | "body_scope": "classification_and_navigation_only" |
| | } |
| }, | }, |
| "content_sha256": "a0c27221d406c709c7f449f9bed9f70bca53c1d176c0aa2b11b29c4c12f240b5", | "content_sha256": "47e5fab1721cbbdcbe0ebf07f2490fd24915009811b0f11f56279ab19e88e2a1", |
| "schema": 1 | "schema": 1 |
| } | } |
| </sharix-knowledge-meta> | </sharix-knowledge-meta> |
| ====== Архив исходников, Graphify и выбор контекста ====== | ====== Архив исходников ShariX Open: получение и работа с Graphify ====== |
| ~~NOCACHE~~ | ~~NOCACHE~~ |
| |
| | **Назначение:** [[sharixopen:knowledge:classification:materials#prakticheskoe_rukovodstvo|Практическое руководство]]. **Продукт:** [[sharixopen:knowledge:classification:products#sharix_open|ShariX Open]]. |
| |
| ===== Назначение и границы ===== | **Для кого:** [[sharixopen:knowledge:classification:audiences#razrabotchik|Разработчик]] · [[sharixopen:knowledge:classification:audiences#integrator|Интегратор]] · [[sharixopen:knowledge:classification:audiences#recenzent_i_prijomschik|Рецензент и приёмщик]] · [[sharixopen:knowledge:classification:audiences#nejroset|Нейросеть]]. |
| Публичный ''sharix-open-tz'' предоставляет контекст ShariX Open: опубликованные исходники, их структурные графы и при явном выборе снимок публичной Wiki. Это инструмент на компьютере, готовящем архив. Он не устанавливает приложение и не изменяет сервер. Для чтения и анализа ShariX Open закрытые исходники Platform и внутренняя Wiki не требуются. | |
| |
| Не путать этот публичный загрузчик с полным внутренним TZ: набор режимов, каталог и формат inventory могут различаться. Команды ниже относятся именно к ''ShariX_Open/sharix-open-tz''. | **Темы:** [[sharixopen:knowledge:classification:topics#isxodnyj_kontekst|Разработка → Исходный контекст]] · [[sharixopen:knowledge:classification:topics#osnovanija_svedenij|База знаний → Основания сведений]]. |
| |
| ===== Как получить пакет ===== | |
| Из корня актуального публичного TZ сначала проверить интерфейс и состав. Команды ниже не запускают Django и не меняют БД. | |
| | Публичный репозиторий ''ShariX_Open/sharix-open-tz'' содержит загрузчик исходников ShariX Open. Он собирает ZIP для чтения кода разработчиком или нейросетью. В пакет можно включить графы связей кода и снимок публичной Wiki. |
| | |
| | **Загрузчик запускается на компьютере, где готовят архив.** Он не устанавливает ShariX Open на сервер. Команды этой страницы относятся к публичному ''sharix-open-tz''; у полного внутреннего TZ другой состав и интерфейс. |
| | |
| | |
| | ===== Что относится к публичному пакету ===== |
| | Каталог config/open-repositories.tsv публичного sharix-open-tz перечисляет исходники с указанной семьёй GPL/AGPL. Он не равен списку всех модулей, которые можно установить рядом с ShariX Open. Например, закрытый sharix-service-constructor не включается в публичный архив по признаку shared. |
| | |
| | Проверять LICENSE и COMPLIANCE выбранной версии. Публичная доступность Git сама по себе не заменяет лицензию. В публичный пакет не добавляют: |
| | |
| | * закрытые модули; |
| | * их внутренние схемы; |
| | * их исходные ZIP; |
| | * производные графы закрытых модулей. |
| | |
| | Общий внутренний архив и публичный пакет имеют разные границы; внутренний пакет нельзя переименовать в публичный. |
| | |
| | Снимок Wiki должен содержать публичные описания и допустимые записи о границе закрытых модулей. Если обнаружено описание внутреннего устройства закрытого компонента, его исправляют у источника, а не размножают по архивам. Детали закрытых компонентов запрашивают у ответственных Platform и хранят в intrawiki. Перечень — [[sharixopen:knowledge:architecture:model_ownership|владение моделями]]. |
| | |
| | ===== Как получить архив ===== |
| | Открыть терминал в корне актуального checkout ''sharix-open-tz''. Сначала посмотреть справку и выбранные репозитории: |
| <code bash> | <code bash> |
| ./tools/download_sharix_sources.sh --help | ./tools/download_sharix_sources.sh --help |
| ./tools/download_sharix_sources.sh --list | ./tools/download_sharix_sources.sh --list |
| | </code> |
| | ''--list'' показывает состав без скачивания. Для получения исходников, графов и публичной Wiki выполнить: |
| | <code bash> |
| ./tools/download_sharix_sources.sh --with-knowledge --graphify-html --output-dir "$HOME/Downloads" | ./tools/download_sharix_sources.sh --with-knowledge --graphify-html --output-dir "$HOME/Downloads" |
| </code> | </code> |
| Последняя команда скачивает выбранные исходники и публичную Wiki, строит графы и сохраняет ZIP. Без ''--with-knowledge'' Wiki не включается. ''--graphify-html'' добавляет автономные HTML-представления; JSON и отчёты нужны и без HTML. ''--no-graphify'' — явный режим архива без графов; нельзя выдавать его за полный графовый анализ. Ветка выбирается каталогом или явными ''--branch''/''--branch-all''; не подставлять историческую ветку без проверки задачи. | При успешном завершении в указанном каталоге появится ''sharix-open-context-YYYYMMDD-HHMMSS.zip''. Для создания архива нужны доступ к публичным Git-репозиториям и инструменты, которые проверяет загрузчик. Актуальные требования находятся в его README и ''--help''. |
| | |
| | ===== Какие параметры выбирать ===== |
| | ^ Параметр ^ Результат ^ |
| | | Без дополнительных параметров | Исходники и графы; снимок Wiki не добавляется. | |
| | | ''--with-knowledge'' | Добавить снимок публичной Wiki в ''knowledge/open.zip''. | |
| | | ''--graphify-html'' | Кроме JSON и отчётов добавить HTML-представления графов для просмотра. | |
| | | ''--no-graphify'' | Явно собрать пакет без графов. Это отдельный режим, а не результат успешного графового анализа. | |
| | | ''--branch-all'' / ''--branch'' | Выбрать другую ветку для всех или отдельного репозитория. Имена и точный синтаксис — в ''--help''. | |
| | |
| | Graphify устанавливается на компьютере, создающем ZIP. Если его нет, интерактивный загрузчик предлагает установку и запрашивает согласие. Без терминала сообщает, как подготовить инструмент или явно выбрать режим без графов. Устанавливать Graphify в виртуальное окружение работающего Django и включать его Git hooks для получения этого архива не требуется. |
| | |
| | ===== Что открыть внутри ZIP ===== |
| | ^ Путь ^ Содержимое и назначение ^ |
| | | ''README.txt'' | Порядок чтения полученного пакета. | |
| | | ''MANIFEST.tsv'' | Репозиторий, ветка, точный commit, адрес и сведения о лицензии для каждого исходного архива. | |
| | | ''sources/'' | Отдельные ZIP репозиториев приложения. | |
| | | ''context/'' | Архив публичного TZ. Исходные ZIP не содержат историю ''.git''. | |
| | | ''knowledge/open.zip'' | Публичная Wiki, если выбран ''--with-knowledge''. | |
| | | ''graphify/GRAPHIFY_INVENTORY.json'' | Какие репозитории проанализированы, их commits, пути графов и контрольные суммы. | |
| | | ''graphify/open/assembly/graph.json'' | Общий структурный граф кода ShariX Open. | |
| | | ''graphify/open/assembly/ui_design_graph.json'' | Обнаруженные связи интерфейса и дизайна на уровне сборки. | |
| | | ''graphify/open/assembly/UI_DESIGN_REPORT.md'' | Отчёт анализа интерфейса. При выборе HTML рядом создаётся ''ui_design.html''. | |
| | | ''graphify/open/repositories/'' | Результаты анализа отдельных репозиториев. Наличие и пути файлов проверяются по inventory. | |
| | |
| | Отдельные виды графов зависят от содержимого репозитория. Например, анализ интерфейса не требует, чтобы в каждом репозитории был Python-код. Inventory показывает, что было получено или пропущено. |
| | |
| | ===== Как использовать пакет для конкретной задачи ===== |
| | - Назвать вопрос и продукт. По [[sharixopen:knowledge:development:methodology:start|индексу Wiki]] найти нужный модуль и правила его изменения. |
| | - В ''MANIFEST.tsv'' проверить версию репозитория. В ''GRAPHIFY_INVENTORY.json'' найти соответствующий граф. |
| | - По графу найти связанные файлы: маршрут, обработчик запроса, модель, шаблон или вызывающий модуль. |
| | - Прочитать найденный код и относящиеся к нему проверки. Сформулировать вывод с указанием файла и commit. |
| | - Если вопрос касается работающего сервера, отдельно выяснить его установленную версию, настройки, данные и результат нужного действия. |
| | |
| | Разные графы показывают разные связи: |
| |
| Graphify устанавливается отдельно на компьютере, формирующем архив. При отсутствии инструмента интерактивный загрузчик предлагает установку с согласием; без терминала выдаёт способ подготовки или явного отказа от графов. Актуальные зависимости и параметры — в README/''--help'' публичного TZ. Не устанавливать Graphify в Django venv работающего сервиса и не включать его Git hooks. | * **Граф Wiki** — связи страниц документации. |
| | * **Graphify** — связи элементов исходников. |
| | * **Анализ UI** — найденные связи шаблонов, CSS, JavaScript и конфигурации. |
| |
| ===== Что находится в архиве ===== | Стрелка на графе помогает выбрать место чтения, но не подтверждает, что этот путь выполнился на сервере или что пользователь имеет нужные права. Неразрешённая динамическая связь остаётся вопросом для проверки. |
| ^ Часть ^ Назначение ^ | |
| | ''MANIFEST.tsv'', ''README.txt'' | Состав пакета и исходные сведения о получении. | | |
| | ''sources/'' и ''context/'' | Отдельные Git ZIP опубликованных исходников и публичного TZ, без истории ''.git''. | | |
| | ''knowledge/open.zip'' | Снимок публичной Wiki, если выбран ''--with-knowledge''. | | |
| | ''graphify/open/'' | Графы кода, UI/дизайна/имён конфигурации, отчёты и сборочные представления. | | |
| | ''GRAPHIFY_INVENTORY.json'' в разделе графов | Привязка результатов к Git SHA и контрольным суммам артефактов; точное размещение сверить по README пакета. | | |
| |
| Исходные архивы и анализ относятся к одному выбранному временному checkout. Сохранённый в исходниках старый граф не служит заменой новой генерации. Проверка неизменности отслеживаемых файлов защищает исходный срез от побочного изменения анализатором. При ошибке анализа загрузчик не должен молча публиковать неполный графовый пакет. | ===== Когда архив или граф устарел ===== |
| | Загрузчик создаёт исходный ZIP и граф по одному выбранному временному Git checkout — одной полученной версии репозитория. При анализе проверяется, что отслеживаемые файлы не изменены инструментом. Старый сохранённый граф не подставляется вместо нового анализа; ошибка генерации не должна молча давать неполный пакет. |
| |
| ===== Как выбирать контекст ===== | Если код изменился, для следующего анализа нужен новый пакет соответствующей версии. Переименование графа или ручная замена его хеша не обновляет содержание. Снимок Wiki также относится к моменту получения: текущая страница могла измениться позже. |
| Начать с вопроса и нужного продукта. По [[sharixopen:knowledge:development:methodology:start|индексу Wiki]] найти owner и контракт, затем по inventory выбрать соответствующий репозиторий и commit. Граф помогает найти связанные маршруты, модели, шаблоны и consumers; после этого читают конкретные исходники и проверки. | |
| |
| Граф документов Wiki показывает связи знаний; Graphify показывает статические связи исходников; UI overlay добавляет обнаруженные связи интерфейса. Они дополняют друг друга и не доказывают успешное выполнение программы. Неразрешённая динамическая связь является вопросом для проверки. Наличие стрелки не подтверждает права, целостность БД, внешний callback или завершение пользовательского процесса. | Публичный загрузчик работает с публичным каталогом ShariX Open. Закрытый Git и внутренняя Wiki для него не требуются. В пакет не добавляются: |
| |
| ===== Актуальность и безопасная передача ===== | * локальные ''.env''; |
| После изменения исходной версии граф того же имени может быть устаревшим. Для нового анализа заново получить нужный срез и сверить inventory, не исправлять вручную контрольную сумму ради отметки актуальности. Снимок Wiki также имеет собственную дату и может отставать от текущей страницы. | * рабочая БД; |
| | * журналы; |
| | * секреты. |
| |
| В пакет не добавляют локальные ''.env'', credentials, рабочую БД и журналы. Публичный каталог не обращается к закрытым продуктам; недоступный публичный источник — ошибка получения, а не приглашение передать личный токен в чат. Архив помогает анализу, но не является разрешением внедрять изменения. | Если публичный источник недоступен без авторизации, получение останавливается; личный токен в чат для исправления такой ошибки не передают. |
| |
| ===== Для нейросети ===== | ===== Для нейросети ===== |
| Не читать весь пакет без разбора и не считать граф источником бизнес-истины. Обозначить выбранные версии, найти нужные контракты, проверить исходники и оставить проверяемые ссылки. Если данные не покрывают вопрос, указать конкретный пробел. Передать человеку понятный вывод и способ его применения; правила свидетельств — [[sharixopen:knowledge:development:verification|критерии приёмки]]. | Выбирать нужные страницы и исходники по вопросу, а не загружать весь пакет без разбора. Указывать версии, проверять найденные по графу места в коде и отделять неизвестное от результата. Человек должен получить конкретный вывод и способ дальнейшей проверки. Основания выводов описаны в [[sharixopen:knowledge:architecture:source_of_truth|правилах работы со сведениями]], критерии проверки — в [[sharixopen:knowledge:development:verification|приёмке изменений]]. |
| |
| ===== Проверенная исходная база: 30.10.2026 ===== | ===== Проверенная исходная база: 30.10.2026 ===== |