Skip to main content

normik

ci pypi python license

nk — линтер оформления отчёта о НИР по ГОСТ 7.32-2017 для исходников LaTeX.

Документация: https://trum-ok.github.io/normik/

Принимает .tex и выдаёт список нарушений с указанием пункта стандарта, файла и строки.

nk check report.tex
report.tex
  1:17  warning  G732-6.5.1-reference-word
    Нарушение: В ссылке на иллюстрацию использовано сокращение «рис.».
    Требуется: При ссылке пишут слово «рисунок» полностью и его номер.
    Исправить: Заменить «рис.» на «рисунок» в нужном падеже.
    > 1 | Как показано на рис.~\ref{fig:speed}, зависимость линейная.
        |                 ^
      2 | 
      3 | \begin{figure}[h]

  5:5  error  G732-6.5.7-caption-dot
    Нарушение: Наименование рисунка заканчивается точкой.
    Требуется: Наименование рисунка приводят с прописной буквы без точки в конце.
    Исправить: \caption{Зависимость скорости от нагрузки}
      3 | \begin{figure}[h]
      4 |     \includegraphics{plot.png}
    > 5 |     \caption{Зависимость скорости от нагрузки.}
      6 |     \label{fig:speed}
      7 | \end{figure}

Итого: 1 error, 1 warning, 0 info.
Исправимо машинно: 1 из 2. Применить: nk check report.tex --fix, посмотреть правки: --diff.
Машинный вывод: --format json, вывод для агента: --format agent

Установка

uv tool install normik

После этого команда nk доступна в системе. Разовый запуск без установки:

uvx --from normik nk check chapters

Для работы над самим линтером — клонировать репозиторий и выполнить uv sync; внутри клона команда запускается как uv run nk.

Примеры запуска

Проверить весь каталог с исходниками:

nk check chapters

Получить вывод, который можно скопировать в Claude Code без пояснений:

nk check chapters --format agent

Проверить по профилю кафедры, показывая только ошибки:

nk check report.tex --profile profiles/example-university.toml --severity error

Починить то, что чинится механически — сначала посмотреть, потом применить:

nk check chapters --diff
nk check chapters --fix

Включить линтер на готовой работе: зафиксировать текущие нарушения снимком и дальше видеть только новые:

nk check chapters --write-baseline .nk-baseline.json
nk check chapters --baseline .nk-baseline.json

Команды

Команда Назначение
nk check PATH... проверить исходники
nk rules list перечень правил
nk rules show RULE_ID подробности по правилу
nk rules docs пересобрать страницы правил в docs/rules/
nk profile show итоговый набор правил после применения профиля

Ключи check, коды возврата и форматы вывода — на странице Использование.

Документация

Страница О чём
Использование команды, ключи, форматы вывода, автоисправление, подавления, снимок
Профили подстройка набора правил под кафедру
Правила страница на каждое правило: почему, пример, настройка
Интеграции CI, хук, передача вывода агенту
Как добавить правило руководство для соавторов

Исходники документации — в каталоге docs/; каталог docs/rules/ генерируется командой uv run nk rules docs и руками не редактируется.

Разработка

make check      # ruff, ty, pytest
make docs       # перегенерировать правила и собрать сайт
make docs-serve # локальный просмотр на http://127.0.0.1:8000

Metadata

Release files for normik 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for normik 0.1.2
File Size Uploaded
normik-0.1.2.tar.gz 207.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for normik 0.1.2
File Interpreter ABI Platform
normik-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 368.9 kB

Release files / normik-0.1.2.tar.gz

Download URL normik-0.1.2.tar.gz
Size 207.1 kB
Tags Source
SHA-256 checksum
How to use checksums
67bc7882f83afad111649a64dba89f27b948da1b49d27ad0c5ecec12e78ac6a1
BLAKE2b-256 checksum
How to use checksums
bd260e182399904b3f957c3556c66e415ac3c2c735c295cde8f300da0b83b4ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release files / normik-0.1.2-py3-none-any.whl

Download URL normik-0.1.2-py3-none-any.whl
Size 161.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ebd1ffa52b4c4ac8146995152dac0470997c51fa7b0cef970df378ccd7f46b5
BLAKE2b-256 checksum
How to use checksums
0c240db390b882d34c5e5eb0d94a5a924f402dcae7f44df4edce00d65acefefc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.0

2 release files

0.2.0

2 release files

This release

0.1.2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page