🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Kazakhstan tax assistant

by @k0zibek

Kazakhstan tax assistant — НК РК / ҚР Салық кодексі (актуальная редакция). Отвечает на вопросы о налогах на русском и казахском языках. Ищет статьи, объясняе...

Versionv1.1.2
Downloads755
TERMINAL
clawhub install kz-tax-code

📖 About This Skill


name: kz-tax-code description: "Kazakhstan tax assistant — НК РК / ҚР Салық кодексі (актуальная редакция). Отвечает на вопросы о налогах на русском и казахском языках. Ищет статьи, объясняет ставки, вычеты, льготы, правила КГД и формы деклараций (910, 920, 700, 200, 300, 101). Использовать когда пользователь спрашивает: конкретные статьи (\"статья 363\", \"363-бап\"), ставки и льготы (\"ставка НДС\", \"ҚҚС мөлшерлемесі\", \"ИПН ставка\", \"ЖТС мөлшерлемесі\"), декларации и правила КГД, упрощённый режим (упрощёнка, патент, шағын бизнес), любой налоговый вопрос: \"МСБ КПН\", \"жалақыдан салық есептеу\", \"АЕК мөлшері\", \"налог на дивиденды\", \"МӘМС ставкасы\". Requires Node.js runtime for scripts."

kz-tax-code — Kazakhstan Tax Assistant

Источник истины

Все ответы строятся на тексте кодекса из data/. Никаких встроенных ставок — только то, что найдено в первоисточнике. Если статья не найдена — честно говорим об этом.

Что НЕ находится в НК РК

Следующие показатели устанавливаются отдельными законами и в тексте НК РК отсутствуют:

| Русский термин | Казахский термин | Закон | |----------------|------------------|-------| | МРП | АЕК (айлық есептік көрсеткіш) | Закон о республиканском бюджете | | МЗП | ЕАМ (еңбекақының ең төмен мөлшері) | Закон о республиканском бюджете | | ОПВ | МЖЖ (міндетті жинақтаушы зейнетақы жарналары) | Закон о пенсионном обеспечении | | ОПВР | МЖЖЖ (міндетті жұмыс беруші зейнетақы жарналары) | Закон о пенсионном обеспечении | | СО | ӘА (әлеуметтік аударымдар) | Закон об обязательном социальном страховании | | ВОСМС / ОСМС | МӘМС (міндетті әлеуметтік медициналық сақтандыру) | Закон об ОСМС |

Коды документов, URL и последние известные значения — в data/laws.json (обновлять ежегодно).

Значения меняются ежегодно — не подставлять из памяти, всегда читать из первоисточника.

Получить актуальные значения

1. Прочитать data/laws.json — коды документов, URL и последние известные значения 2. Скачать нужный закон (язык зависит от запроса пользователя):

# Русскоязычный запрос (МРП, МЗП)

Запускать из корня workspace; --out пишется относительно CWD

node skills/kz-tax-code/scripts/fetch.js \ --doc=Z2500000065 --lang=ru --out=skills/kz-tax-code/data/budget-current-ru.md --insecure

Казахскоязычный запрос (АЕК, ЕАМ)

node skills/kz-tax-code/scripts/fetch.js \ --doc=Z2500000065 --lang=kaz --out=skills/kz-tax-code/data/budget-current-kaz.md --insecure
3. Найти значение через поиск:
# --file резолвится от CWD (корня workspace)
node skills/kz-tax-code/scripts/search.js \
  --file=skills/kz-tax-code/data/budget-current-ru.md --keyword="месячный расчётный показатель"

node skills/kz-tax-code/scripts/search.js \ --file=skills/kz-tax-code/data/budget-current-kaz.md --keyword="АЕК мөлшері"

Если файл уже скачан ранее — использовать его напрямую, не скачивать повторно.

Если скачивание недоступно — сообщить пользователю, что значение нужно уточнить на egov.kz или adilet.zan.kz, и привести knownValues из laws.json как ориентир с явной пометкой "требует проверки".

Персонализированные расчёты

Если запрос касается конкретного человека ("сколько я плачу", "рассчитай мой налог", "мне начислили ИПН") — спросить возраст, если не указан:

> «Уточните, пожалуйста, ваш возраст — это влияет на расчёт»

Почему возраст важен

> ⚠️ Ставки (ОПВ, ВОСМС и др.) и пенсионные возрасты меняются законодательно. Значения ниже — ориентировочные на момент написания. Актуальные ставки всегда брать из data/laws.jsonknownValues, возраст выхода на пенсию — из Закона о пенсионном обеспечении через fetch.js.

| Возраст | Особенности | |---------|-------------| | Мужчины до 63 лет / Женщины до 61.5 лет ⚠️ | ОПВ удерживается в стандартном порядке (ставка — в laws.json) | | Мужчины 63+ / Женщины 61.5+ (получатели пенсии) ⚠️ | ОПВ не удерживается (ст. 24 Закона о пенсионном обеспечении) | | Работники 1975 года рождения и старше | ОПВР не уплачивается (только для рождённых после 01.01.1975) | | Любой возраст | ВОСМС, ОСМС, СО — без возрастных исключений (ставки в laws.json) |

> Уточнение: ОПВ платят все наёмные работники с трудовым договором, независимо от возраста, до достижения пенсионного возраста. Студенты без трудового договора ОПВ не платят — но не по возрасту, а потому что нет трудовых отношений.

Без знания возраста расчёт ОПВР может быть неверным (ОПВР только для рождённых после 1975 года).

Версии кодекса

Метаданные актуальной и устаревшей версии — в data/versions.json.

| Версия | Смысл | Когда использовать | |--------|-------|-------------------| | current (default) | Действующий НК РК | Всегда, если пользователь не уточняет период | | outdated | Предыдущая редакция | Только если явно спрашивают о прошлом периоде или «старом кодексе» |

Агент не называет год в команде — только --version=current или --version=outdated. Какой именно кодекс сейчас актуален — читать из versions.json и сообщать пользователю (versionName в ответе скрипта).

Определение языка

Язык определяется автоматически по содержимому запроса — явно указывать --lang не нужно.

| Запрос | Язык поиска | Логика | |--------|-------------|--------| | Содержит казахские буквы (ә, ғ, қ, ң, ө, ү, ұ, і, һ) | --lang=kaz | Авто-определение | | Только кириллица без казахских букв | --lang=ru | Авто-определение | | Явно указан --lang=ru\|kaz | По флагу | Приоритет над авто |

> Казахские термины: ЖТС (ИПН), КТС (КПН), ҚҚС (НДС), ӘС (СН), АЕК (МРП), ЕАМ (МЗП), МЖЖ (ОПВ), МЖЖЖ (ОПВР), ӘА (СО), МӘМС (ВОСМС/ОСМС)

Workflow

1. Определи версию

  • По умолчанию: --version=current
  • Переключиться на --version=outdated только если пользователь явно говорит о прошлом периоде или «старом» кодексе
  • 2. Выбери режим поиска (от точного к общему)

    # Знаешь номер статьи → article (самый точный)
    node skills/kz-tax-code/scripts/search.js --article=363
    node skills/kz-tax-code/scripts/search.js --article=363 --version=outdated

    Keyword — язык определяется автоматически по тексту запроса

    node skills/kz-tax-code/scripts/search.js --keyword="дивиденды нерезидент" node skills/kz-tax-code/scripts/search.js --keyword="ҚҚС мөлшерлемесі"

    Topic — язык тоже авто

    node skills/kz-tax-code/scripts/search.js --topic="НДС экспорт освобождение" node skills/kz-tax-code/scripts/search.js --topic="жалақыдан ЖТС есептеу"

    Поиск по другому закону (АЕК/МРП, МЖЖ/ОПВ, МӘМС/ВОСМС и т.д.)

    --file резолвится от CWD (корня workspace)

    node skills/kz-tax-code/scripts/search.js --file=skills/kz-tax-code/data/budget-current-ru.md --keyword="месячный расчётный" node skills/kz-tax-code/scripts/search.js --file=skills/kz-tax-code/data/budget-current-kaz.md --keyword="АЕК мөлшері"

    Приоритет: --article > --keyword > --topic

    3. Прочитай результат и ответь

    Из JSON-ответа использовать:

  • versionName — для указания версии кодекса в ответе
  • results[].article + results[].title — для цитирования статьи
  • results[].text — полный текст статьи (только в режимах article и title_match)
  • results[].context — подсвеченный фрагмент вокруг совпадения (только в keyword_exact, keyword_fallback, topic)
  • Правило: если есть text — читай его; если только context — достаточно контекста
  • Всегда указывать: какой кодекс (versionName), какая статья, какой пункт. Для расчётов: найти нужные статьи (ставки, вычеты, порядок исчисления) и применить формулу по тексту кодекса — не придумывать из головы.

    Формат ответа

    Всегда указывать versionName из ответа скрипта — не хардкодить год.

    На русском: > Согласно статье 363 {{versionName}}, ставка ИПН для резидентов по доходам до 8 500 МРП — 10%, свыше — 15% с суммы превышения. > *(Статья 363, пункт 1)*

    На казахском: > ҚР Салық кодексінің 363-бабына сәйкес ({{versionName}}) резиденттер үшін 8 500 АЕК-ке дейінгі кірістер бойынша ЖТС мөлшерлемесі — 10%, одан жоғары — 15%. > *(363-бап, 1-тармақ)*

    Если в ответе есть externalHints — термин не в НК, объяснить пользователю и предложить получить данные через fetch.js.

    Если статья не найдена: > Статья по данному запросу не найдена в {{versionName}}. Попробуйте уточнить номер статьи или ключевые слова.

    Обновление кодекса

    Когда выходит новый НК РК:

    Рекомендуемый способ (безопасный): 1. Открыть adilet.zan.kz в браузере, найти новый кодекс 2. Сохранить страницу как HTML (ru и kaz версии) 3. Запустить:

    node skills/kz-tax-code/scripts/update.js \
      --doc=K2600000XXX --name="НК РК 2027" --effective=2027-01-01 \
      --html-ru=./nk-ru.html --html-kaz=./nk-kaz.html
    

    Автоматическое скачивание (только в доверенной сети, требует --insecure):

    node skills/kz-tax-code/scripts/update.js \
      --doc=K2600000XXX --name="НК РК 2027" --effective=2027-01-01 --insecure
    
    > ⚠️ --insecure отключает проверку TLS-сертификата (adilet.zan.kz использует НУЦ РК CA, не входящий в trust store Node.js). Не использовать в ненадёжных сетях.

    Скрипт: 1. Парсит HTML → Markdown 2. Переместит текущий currentoutdated 3. Сохранит новый как current 4. Обновит data/versions.json

    Номер документа (--doc) берётся из URL страницы на adilet.zan.kz.