О проекте
Команда: Intent
Кейс HackAlem.ai: Спецтрек — Казахтелеком
Стадия: Рабочий MVP
Задача кейса: Агент, сравнивающий документы оргструктуры до и после реорганизации
Суть
«Отладчик» организационной ответственности: сравнивает комплекты DOCX до и после реорганизации и строит матрицу «кто отвечал → кто отвечает». Выдаёт очередь рисков (пробел, дублирование, конфликт полномочий) с источниками, аудитор фиксирует решения.
Как устроено
DOCX «до» и «после» разбираются в модель ответственности с R-ID. На ней прогоняются организационные проверки со статусами PASS/REVIEW/FAIL, например «непрерывность владельца». Для REVIEW режим INVESTIGATE ищет кандидатов по сходству текста, проверяет владельца, полномочие и контекст, пытается опровергнуть гипотезу и показывает точные параграфы-источники. Решение аудитора пишется в отдельный журнал, системный вывод не меняется. Экспорт в CSV-матрицу, Audit JSON и Markdown-заключение. Внешний AI-агент на OpenAI отключён по умолчанию.
Ключевые решения
- извлечение обязанностей из DOCX
- модель ответственности с R-ID
- организационные тесты PASS/REVIEW/FAIL
- поиск кандидатов по сходству текста
- журнал расследования с контрдоказательствами
- кэширование результата по ID комплекта
- инструментальный цикл AI-агента (проверен fake-клиентом)
Метрики
Контрольный комплект: 6 выводов, 9 записей ответственности, 63 проверки (2 PASS, 7 REVIEW, 0 FAIL); тесты: 93 passed, 23 skipped
Особенности
Принцип «AI proposes. Evidence proves. Human decides»: отсутствие текстового совпадения не объявляется потерей функции, неоднозначность остаётся видимой. Синтетический контрольный комплект с генератором и source_truth.json. Решения человека хранятся отдельно от системного анализа.
Стек
Python · FastAPI · Uvicorn · React · TypeScript · Vite · Tailwind · pnpm · pytest
Модели
OpenAI
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-001016ea-intent.
README
README.mdORG-X — The Organizational Debugger
Отладчик организационной ответственности: после реорганизации кто владеет каждой функцией — и чем это доказано?
HackAlem AI · трек 11 Казахтелеком · «Анализ организационной структуры и функционала».
Представьте Git + тесты + debugger для организационной ответственности. Документы — исходный текст, редакции «до» и «после» — два состояния, а извлечённые обязанности и полномочия — проверяемая модель. Эта метафора описывает работу с двумя загруженными комплектами документов.
ORG-X превращает комплекты документов в модель ответственности с R-ID, выполняет набор организационных проверок и позволяет расследовать каждый неоднозначный случай: найти кандидатов, проверить владельца и полномочие, открыть контрдоказательства и точный источник. Аудитор фиксирует решение; исходный системный анализ сохраняется.
Документы «до / после» → Модель ответственности → Проверки (PASS / REVIEW)
При REVIEW: INVESTIGATE → Источники и контрдоказательства
Решение аудитора → Отдельный журнал → Заключение
Пользователь — аналитик или внутренний аудитор, проверяющий реорганизацию. Его результат — матрица «кто отвечал → кто отвечает», очередь рисков с источниками и заключение с решениями. Основная опасность — принять отсутствие текстового совпадения за потерю ответственности. Поэтому ORG-X сохраняет неоднозначность и проверяет альтернативы: возможный пробел, дублирование и конфликт полномочий не объявляются установленными нарушениями.
AI proposes. Evidence proves. Human decides. Сходство текста предлагает кандидатов; подтверждение требует проверки владельца, полномочия и контекста. Неопределённость остаётся видимой.
Доступно жюри сейчас: полный локальный сценарий без API-ключа, контрольные документы и три формата экспорта. Внешний AI-агент реализован отдельно и по умолчанию отключён; его инструментальный цикл проверен fake-клиентом, живой вызов OpenAI не проверялся.
Быстрый запуск для эксперта
Где работает приложение: эксперт скачивает этот репозиторий и запускает ORG-X на своём компьютере. Интерфейс открывается в браузере по адресу http://127.0.0.1:8000 (localhost). GitHub хранит исходники; приложение запускает команда ниже. Компьютер команды и отдельный публичный сервер для проверки не нужны.
Основной сценарий, контрольные документы и локальное расследование работают без API-ключа, внешнего сервиса и аккаунта участника. Интернет нужен для первоначальной установки зависимостей. Команды предназначены для macOS/Linux; на Windows используйте WSL2.
Требования: Python 3.9+ с venv, Node.js 22+, pnpm 9.15.0, Git. Проверенная конфигурация: Python 3.9.6, Node.js 22.9.0, pnpm 9.15.0. Зависимости зафиксированы в requirements.lock и frontend/pnpm-lock.yaml.
git clone https://github.com/BAITC-Hacks/hack-001016ea-intent.git
cd hack-001016ea-intent
# Если pnpm не установлен или его версия отличается от 9.15.0:
npm install -g [email protected]
bash scripts/setup.sh
bash scripts/check.sh
bash scripts/start.sh
Выполняйте команды по очереди в терминале; после ошибки сначала устраните её по разделу «Если запуск не получился». Для уже скачанного репозитория начните с cd в его корень. Если репозиторий закрыт, используйте доступ, предоставленный организатором.
После start.sh дождитесь строки Uvicorn running on http://127.0.0.1:8000 и откройте http://127.0.0.1:8000 в браузере. Оставьте этот терминал работающим: сервер выполняется, пока процесс не остановлен. Документация API: http://127.0.0.1:8000/docs. Остановка — Ctrl+C; для следующего запуска достаточно bash scripts/start.sh из корня проекта.
setup.sh устанавливает зависимости и создаёт .env, если его ещё нет. check.sh последовательно запускает тесты и production-сборку, используя временную базу и отключённый внешний AI. start.sh пересобирает frontend перед запуском, чтобы интерфейс соответствовал текущему коду.
Как понять, что всё готово: на странице видны ORG-X и кнопка «Открыть контрольный комплект». В новой копии без оригиналов организатора текущий набор тестов даёт 93 passed, 23 skipped, затем успешную production-сборку. Пропущены только проверки, которым нужны оригинальные DOCX; для встроенного контрольного примера они не требуются. Заполнять API-ключ или менять .env для этого сценария не нужно.
Те же шаги вручную
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.lock
.venv/bin/python -m pip check
pnpm --dir frontend install --frozen-lockfile
test -f .env || cp .env.example .env
ORGX_ENABLE_OPENAI=0 .venv/bin/python -m pytest -q
pnpm --dir frontend build
.venv/bin/python -m uvicorn orgx.main:app --app-dir backend --host 127.0.0.1 --port 8000
Демо за 5 минут: от REVIEW к решению аудитора
В репозитории есть синтетический комплект: три DOCX «до» и три «после» в examples/control. Это учебные документы ORG-X, а не документы Казахтелекома. Исходные тексты — sources.json, генератор — scripts/generate_control.py.
Начните с вопроса: «Функцию исключили из прежнего перечня. Кто теперь за неё отвечает?» Затем пройдите одну запись от проверки до решения. Первые четыре шага — основной сюжет для короткой защиты; остальные показывают охват MVP.
- Загрузить и получить модель. Нажмите «Открыть контрольный комплект». После анализа появятся шесть документов и экран «Организационные тесты». Для ручной загрузки: «Новый аудит» → три файла
examples/control/beforeв «До изменений» и три файлаexamples/control/afterв «После изменений» → «Начать анализ». - Найти неоднозначность. Выберите запись «Проверяет комплектность документов для закрытия гарантийных обращений» со статусом «Возможный пробел». Покажите
R-ID, прежнего владельца и проверку «Непрерывность владельца»: новый владелец не подтверждён, поэтому требуетсяREVIEW. - Расследовать. Нажмите «INVESTIGATE · Расследовать». Пройдите журнал: исходная гипотеза → поиск по новой версии → проверка кандидатов → попытка опровергнуть гипотезу → итог. Откройте источники:
before/02-functions.docx, §7.2.2, иafter/03-order.docx, §2.3. В контрольном случае гипотеза остаётся «Возможный пробел»: исключение прямо указано, но потеря всей функции не доказана. Пересмотр гипотезы не обязан менять её статус. - Принять решение и получить результат. Нажмите «Вывод и решение аудитора» → «Решение аудитора». Выберите «Нужны данные», укажите демонстрационного ответственного и обоснование: «Запросить действующий пункт, назначающий владельца после исключения функции по §2.3». Нажмите «Сохранить решение». В «Заключении» появится решение 1 из 6; «Заключение с решениями» скачивает Markdown с этой записью. Системный вывод остаётся неизменным.
- Проверить реорганизацию и передачу. В «Подразделениях»: Департамент проверки сохранён, Департамент реестров преобразован в Департамент данных по §2.1 распоряжения, Департамент контроля добавлен. В «Матрице функций»: проверка квартальной отчётности сохранена; формирование реестра договоров передано по §2.2. Откройте источники обеих версий и основание передачи.
- Проверить другие риски. В «Функции и выводы» откройте «Возможное дублирование» сверки склада у ДД/ДК (§9.4.2 и §9.7.1) и «Риск конфликта полномочий» — право и запрет утверждать корректировку бюджета (§9.9.1 и §9.10.1). Вкладки «Источники», «Поиск и кандидаты», «Журнал исследования» показывают основания и ограничения. Частичное пересечение контроля сроков и качества остаётся на ручную проверку.
- Выгрузить и воспроизвести. «Матрица функций» → «Скачать CSV» даёт матрицу со ссылками. «Заключение» → «Audit JSON» даёт канонический системный результат. Повторный анализ того же комплекта возвращает тот же ID и результат из кэша; решения человека хранятся отдельно.
Ориентиры контрольного примера: 6 выводов — по одному сохранению, переносу, возможному пробелу, дублированию, конфликту полномочий и случаю для ручной проверки. Экран организационных тестов показывает 9 записей ответственности и 63 проверки: 2 записи PASS, 7 REVIEW, 0 FAIL. Это разные счётчики: записи ответственности и проверки не равны числу функций или выводов. REVIEW — ожидаемый результат для неоднозначных случаев; 0 FAIL не означает отсутствие организационных рисков.
Риски — основания для проверки, а не утверждения о нарушениях. Контрольный комплект проверяет известные сценарии; он не доказывает точность на произвольных документах.
Центральный кейс для защиты: право ДККМ в редакциях 8 → 9
В локальной разработке использованы Внутренний_аудит_редакция_8_до.docx, Внутренний_аудит_редакция_9_после.docx и описание трека track_11.txt.
Оригинальные файлы не включены в Git. Полученные у организатора DOCX загрузите через интерфейс. Для кнопки реальной пары, source-тестов и benchmark поместите оба DOCX с указанными именами в work/hackalem/kazakhtelecom/. Текст задания при наличии хранится в work/hackalem/docs/track_11.txt; для запуска он не нужен.
Если доступны оригиналы, используйте этот кейс для демонстрации реальной неоднозначности. На чистом клоне без них воспроизводимым сценарием остаётся контрольный комплект выше.
Вопрос: прежнее право ДККМ формировать группы контроля качества явно указано в §5.6.2 «до». Прямое продолжение этого полномочия не установлено, но в новой редакции есть другие положения о контроле качества — §5.5.2 и §10.7. Достаточно ли этого, чтобы объявить функцию потерянной?
- Загрузите редакции 8 и 9, откройте «Организационные тесты» и найдите запись о формировании групп контроля качества.
- Покажите прежнего владельца и точный §5.6.2, затем нажмите «INVESTIGATE · Расследовать».
- Откройте проверенных кандидатов и контрдоказательства, сопоставьте действие, полномочие и контекст с §5.5.2 и §10.7 «после».
- Завершите выводом: потенциальный пробел конкретного полномочия; потеря всей функции контроля качества не доказана. Через «Вывод и решение аудитора» запросите подтверждающий документ или зафиксируйте мотивированное решение.
Фраза для защиты: «Отсутствие текстового совпадения ещё не означает потерю ответственности. Здесь мы проверяем гипотезу, показываем альтернативные положения и оставляем решение аудитору».
Другие проверяемые изменения реальной пары:
- В перечне §3.4 ДНМ и ДККМ сохранены, ДИТААД и ДОА добавлены. Изменение ролей §5.3 рассматривается отдельно: вывод «два департамента заменены четырьмя» не делается.
- Взаимодействие с субъектами СВК перенесено из §5.4.4/а–б «до» в §5.3.3/а–б «после». Ответственный указан коллективно; исключительный владелец не выдумывается.
- Участие в органах управления (§4.4 «после») сопоставляется с ограничением управленческих решений (§5.8.1/в) и мерами независимости. Это потенциальный риск, требующий проверки.
truth/source_truth.json содержит 22 авторских контрольных случая, исходные цитаты и SHA-256. Runtime не читает этот файл. Независимая экспертная приёмка не проводилась: human_signoff=null. Подробнее — truth/README.md.
Архитектура и технологии
flowchart TD
A[Комплекты DOCX / PDF / XLSX] --> B[Точные фрагменты и SHA-256]
B --> C[Organizational IR: подразделения, роли, функции]
C --> D[Поиск кандидатов и доказательные правила]
D --> E[R-ID, история ответственности и набор проверок]
E --> F[Канонический audit record]
F --> G[Рабочее место аудитора: матрица и REVIEW]
G --> H[INVESTIGATE: локальный поиск и проверка гипотезы]
G --> K[Опциональный AI: отдельный цикл инструментов]
H --> L[Точные источники и контрдоказательства]
K --> L
G --> L
L --> I[Решение аудитора]
I --> J[Отдельный журнал решений и заключение]
- Backend: Python, FastAPI, Uvicorn, Pydantic; SQLite хранит результаты, кэш и решения аудитора.
- Извлечение:
python-docxдля DOCX, PyMuPDF для текстового PDF, openpyxl для XLSX. Исходные фрагменты сохраняются отдельно от интерпретации. - Сопоставление: детерминированный поиск, явные владельцы, модальность
duty/right/prohibition, контекст и проверяемые правила. Similarity не является вероятностью правильного вывода. - Frontend: React 19, TypeScript, Vite, Tailwind CSS, Lucide.
- AI: опциональный OpenAI Responses API с ограниченным циклом вызова инструментов. Модель предлагает кандидатов; не меняет системные факты.
- Проверки: pytest, API TestClient, синтетические/adversarial кейсы, контрольные цитаты реальных документов, TypeScript и production-сборка.
Карта репозитория:
backend/orgx/ ingestion, IR, правила, API, investigator, SQLite
backend/tests/ API, источники, устойчивость и негативные сценарии
frontend/src/ рабочее место аудитора
examples/control/ воспроизводимый синтетический комплект 3 + 3 DOCX
truth/ контрольная разметка реальной пары
scripts/ установка, проверка, запуск, генератор и benchmark
docs/ архитектура, результаты проверки, сторонние компоненты
work/ локальная база и документы; исключены из Git
Описание модулей, API и доказательной политики — docs/architecture.md. Результаты выполненных проверок — docs/validation.md.
Модель ответственности и набор организационных проверок
Набор проверок отвечает на практический вопрос: можно ли по переданным документам проследить ответственность после изменения? Экран показывает владельцев в обеих версиях, кандидатов и цепочку источников. Для каждой записи выполняются семь проверок: непрерывность владельца, основание передачи, границы ответственности, конкурирующие владельцы, совместимость полномочий, разделение/объединение и целостность источников.
R-ID — fingerprint нормализованных action/object/context/authority. Он не зависит от номера пункта, версии и отдельного поля владельца; перефразирование может изменить ID. Совпавший fingerprint сам по себе не доказывает эквивалентность. lineage_id различает конкретные вхождения и сохраняет ссылки на документы. Документарные риски вне извлечённых функций отображаются отдельными записями.
PASS означает выполнение указанного документарного условия. REVIEW требует проверки. Текущие правила не выдают организационный FAIL: недостаток или противоречивость оснований дают REVIEW, а повреждённая доказательная цепочка отклоняется валидатором. Поэтому сюжет демонстрации — REVIEW → INVESTIGATE → EVIDENCE → HUMAN DECISION. SPLIT/MERGED допускаются только как гипотезы полного буквального покрытия частей при совместимых контексте и полномочиях; это не подтверждённое правопреемство.
Кнопка локального расследования выполняет поиск, проверку кандидатов, поиск контрдоказательств и пересмотр рабочей гипотезы. Журнал отражает выполненные операции. Это детерминированный workflow без LLM; отдельное AI-исследование описано ниже. На реальной паре показываются её фактические результаты — наличие split/merge не выдумывается ради демонстрации.
Модель истории, условия проверок и API — docs/debugger.md.
Окружение, данные и AI
Два режима расследования
- Без внешнего AI — режим по умолчанию. Документы → модель → проверки → локальное
INVESTIGATE→ источники → решение. Поиск и пересмотр гипотезы выполняются кодом; API-ключ не нужен. Именно этот полный сценарий проверен в браузере. - С внешним AI — опциональный агент. Модель выбирает поисковые запросы и вызывает инструменты поиска, просмотра функций и предложения пар. Предложения и журнал действий показываются отдельно; модель не переписывает канонические выводы.
Для проверки второго режима задайте в локальном .env ORGX_ENABLE_OPENAI=1, OPENAI_API_KEY и доступную аккаунту OPENAI_MODEL, затем перезапустите сервер. Откройте карточку вывода → «Журнал исследования» → «Запустить AI-исследование». Это отдельное действие передаёт фрагменты в OpenAI. Ключ остаётся на backend и не должен попадать в репозиторий.
Граница проверки: цикл инструментов и обработка ошибок проверены fake-клиентом; живой вызов и качество конкретной модели не проверялись. На защите показывайте AI ON только после успешного запуска с собственным доступом. Отсутствие ключа или ошибка API сохраняют доступ к локальному аудиту и не доказывают выполнение AI-расследования.
Настройки и хранение
Настройки читаются из .env в корне; пример — .env.example. Заданные переменные процесса имеют приоритет.
ORGX_ENABLE_OPENAI=0— внешний AI отключён;1разрешает опциональные AI-действия интерфейса.OPENAI_API_KEY— ключ только на backend, нужен исключительно для внешнего AI.OPENAI_MODEL— модель/snapshot, доступные аккаунту; автоматической подмены нет.ORGX_DB— путь SQLite. По умолчаниюwork/orgx.sqliteвнутри проекта; относительный пользовательский путь считается от рабочей директории процесса.PORT=8000— порт скрипта запуска. Например:PORT=8010 bash scripts/start.sh. Передаётся в shell; файл.envне задаёт порт Uvicorn.
Загрузка, анализ, источники, локальная проверка и экспорт работают локально. SQLite содержит извлечённые тексты, результаты и решения; .env и work/ исключены из Git. Для отдельной базы: ORGX_DB=work/test.sqlite bash scripts/start.sh.
При включённом AI отдельное действие интерфейса отправляет выбранные функции, контекст и запрошенные фрагменты в OpenAI. investigator.py предоставляет инструменты search_evidence, inspect_claim, propose_pair; модель может выбрать следующий поиск и изменить кандидатов. Лимит — 8 раундов и 10 инструментальных вызовов. Перед предложением пары обязательны поиск в обеих версиях, отдельный поиск контрдоказательств в версии «после», просмотр обеих функций и проверка допустимых source ID.
Вызовы и результаты сохраняются отдельно. Неизвестные инструменты/ID отклоняются; отсутствие ключа, ошибка сервиса или лимит не отменяют локальный аудит. Непроверенный текст модели не становится доказательством. Пакетный адаптер llm.py отдельно предлагает ID соответствий. Кэш учитывает запрос, версию протокола и модель. Новые ответы внешней модели не обещаются детерминированными; канонический record не зависит от них.
Приложение рассчитано на одного локального аудитора и слушает 127.0.0.1. Многопользовательская авторизация и сетевое развёртывание в MVP не входят.
Тестирование и воспроизводимость
# Тесты + TypeScript + production-сборка, последовательно:
bash scripts/check.sh
# Проверки устойчивости без документов организатора:
.venv/bin/python -m pytest -q backend/tests/test_robustness.py -m 'not source_documents'
# Benchmark реальной пары, если её DOCX помещены в work/:
ORGX_ENABLE_OPENAI=0 .venv/bin/python scripts/benchmark.py
Без оригиналов организатора source-тесты выводят SKIPPED: это отсутствие проверки реальной пары, а не успешная приёмка её результатов. Синтетический комплект поставляется с кодом и работает на чистом клоне. Внешний AI в автоматических тестах заменён fake-клиентом: платные API-вызовы не нужны.
Проверяются точные цитаты и хэши, устойчивость к перенумерации, отрицанию и числовым условиям, неизвестный/конкурирующий владелец, сужение контекста, форматы файлов, ошибки API, порядок комплектов, кэш и сохранение решений. Повторные входные байты и имена при тех же версиях движка/политики дают одинаковый канонический JSON. Решение аудитора не переписывает исходный анализ.
Ограничения и интерпретация
- Парсер распознаёт явные списки подразделений, заголовки функций/прав/обязанностей и поддерживаемые распорядительные формулировки. Нестандартная структура, синонимы и перефразирование могут требовать ручной проверки; универсальное извлечение всех функций не заявляется.
action/object/scope/authorityоснованы на тексте и структуре, а не на полной семантической онтологии. Пустой scope не означает неограниченную ответственность. Некоторые правила специализированы для положений внутреннего аудита.- Отсутствие совпадения не доказывает потерю функции. Точное совпадение без проверки владельца, модальности и контекста не доказывает сохранение. Новые дубли проверяются и без предшественника; смысловые дубли с другими формулировками могут быть пропущены.
- DOCX: основной текст и таблицы; без OCR, колонтитулов, сносок и вложенных файлов. Исправления Word требуют принятия/отклонения перед повторным анализом. PDF: текстовые блоки и страницы, порядок чтения требует проверки; сканы без текста отклоняются. XLSX: текст/формулы и координаты ячеек, без вычисления формул. Старые
.doc/.xlsне поддерживаются. - Лимиты: 8 файлов на версию, 20 МБ на файл, 40 МБ на комплект, 100 МБ распакованного DOCX/XLSX, 12 000 фрагментов на комплект и 1 500 функций. Повтор одного файла внутри версии отклоняется.
- Риски требуют решения ответственного сотрудника. Проверка законодательства, сравнение с другими операторами, доказательство фактического конфликта интересов и автоматическое перераспределение ответственности не реализованы.
Если запуск не получился
- Не найден python3/pnpm: установите версии из требований; на Linux может понадобиться
python3-venv. - Ошибка установки: проверьте доступ к PyPI/npm и свободное место; повторите
bash scripts/setup.sh. Существующий.envсохраняется. - Порт занят: остановите старый экземпляр или выполните
PORT=8010 bash scripts/start.sh. - Браузер пишет «Не удаётся подключиться»: убедитесь, что
start.shзавершил сборку и процесс Uvicorn продолжает работать. Откройте адрес из терминала; приPORT=8010этоhttp://127.0.0.1:8010. ПослеCtrl+Cсервер останавливается. - Нет реальной пары: используйте контрольный комплект или загрузку файлов; оригиналы в Git не входят.
- HTTP 422: проверьте формат, лимиты, отсутствие повторов и наличие текста. Для сканированного PDF нужен предварительный OCR вне ORG-X.
- HTTP 507: проверьте свободное место и право записи в каталог SQLite.
- AI отключён/нет ключа: штатный режим; основной сценарий доступен.
Для разработки: backend на 8000 и отдельно pnpm --dir frontend dev. Vite проксирует /api на 8000; произвольный PORT этот proxy не меняет.
Источники и сторонние компоненты
Задание: страница HackAlem AI, «Треки», задача 11 Казахтелекома. Положение, §5.4.15 и §5.6.4–6: самостоятельный запуск, документация и проверка без личных аккаунтов команды.
Библиотеки и лицензии — docs/third-party.md; версии — в lock-файлах. При разработке, анализе и тестировании использован OpenAI Codex. Контрольные документы синтетические; источники организатора и авторская разметка обозначены отдельно. Обучение собственной модели не выполняется. Лицензия исходных документов организатора не заменяется лицензиями программных компонентов.
Авторы коммитов
История коммитов
- 2026-09-23 17:45Explain organizational debugger workflow and jury demolilite572-cyber
- 2026-09-23 17:21Clarify jury setup and demo instructionslilite572-cyber
- 2026-09-23 17:06Complete evidence-linked organizational debugger and submission checkslilite572-cyber
- 2026-09-23 16:19Make the auditor runnable by experts from the repository alone.lilite572-cyber
- 2026-09-23 14:56Add ORG-X so auditors can compare document versions with evidence-backed findings.lilite572-cyber
Структура репозитория (66 файлов)
.env.example .gitignore README.md backend/orgx/__init__.py backend/orgx/corpus.py backend/orgx/debug_investigation.py backend/orgx/debugger_api.py backend/orgx/debugger_models.py backend/orgx/engine.py backend/orgx/extract.py backend/orgx/ingest.py backend/orgx/investigator.py backend/orgx/llm.py backend/orgx/main.py backend/orgx/models.py backend/orgx/organizational_tests.py backend/orgx/report.py backend/orgx/responsibility.py backend/orgx/retrieval.py backend/orgx/rules.py backend/orgx/source_integrity.py backend/orgx/store.py backend/tests/conftest.py backend/tests/test_adversarial.py backend/tests/test_api_ai.py backend/tests/test_corpora.py backend/tests/test_ingestion.py backend/tests/test_investigator.py backend/tests/test_organizational_debugger.py backend/tests/test_robustness.py backend/tests/test_truth.py docs/architecture.md docs/debugger.md docs/third-party.md docs/validation.md examples/control/after/01-structure.docx examples/control/after/02-functions.docx examples/control/after/03-order.docx examples/control/before/01-structure.docx examples/control/before/02-functions.docx examples/control/before/03-order.docx examples/control/sources.json frontend/index.html frontend/package.json frontend/pnpm-lock.yaml frontend/postcss.config.js frontend/src/AuditMatrix.tsx frontend/src/OrganizationalDebugger.tsx frontend/src/debugger.css frontend/src/debuggerTypes.ts frontend/src/main.tsx frontend/src/style.css frontend/src/types.ts frontend/tailwind.config.js frontend/tsconfig.json frontend/vite.config.ts pytest.ini requirements.lock requirements.txt scripts/benchmark.py scripts/check.sh scripts/generate_control.py scripts/setup.sh scripts/start.sh truth/README.md truth/source_truth.json
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.