Skip to content

English | Русский

Справочник конфигурации TAUSIK ​

Все настройки в .tausik/config.json в корне проекта. Что не указано — берёт документированный дефолт. Override — добавь ключ в top-level объект (НЕ под bootstrap — там bootstrap управляет).

См. также: environment.md — env-переменные, permissions.md — режимы permissions.

Сигналы сессии (SENAR Rule 9.2 — с 1.10 совет, а не ворота) ​

КлючДефолтНазначение
session_max_minutes180Порог совета по АКТИВНЫМ минутам сессии: выше него task start, status и Stop-хук печатают совет; ничто не отказывает. 0 выключает.
session_idle_threshold_minutes10Промежуток (в минутах), после которого пауза считается AFK и исключается из active-time.
session_warn_threshold_minutes150Порог напоминания stop-хука в session_cleanup_check.py. Должен быть < session_max_minutes.
session_capacity_calls200Бюджет tool-calls на сессию. call_budget задачи выше остатка — строка совета в task start, не отказ.
answer_budget_words200Бюджет слов итогового ответа агента. На следующем запросе ответ сверх него (или без вердикта в первой строке) получает одну строку-совет с числами; ничего не блокируется. Замер — tausik metrics answers.
checkpoint_calls40Вызовы с последнего handoff до совета о чекпоинте (выводится из журнала). 0 выключает.
journal_freshness_calls40Вызовы с последней записи журнала активной задачи до совета. 0 выключает.
audit_every_closures17Закрытия задач с последней отметки аудита до просрочки аудита SENAR 9.5.

Бюджет контекста host thread ​

host_context_budget ограничивает реальный thread хоста. В каждом пороге три положительных целых поля: responses, накопленные input_tokens и context_tokens последнего ответа. Пересечение любого advisory-порога один раз сохраняет checkpoint и возвращает готовый промпт нового окна. Пересечение любого hard-порога задаёт allow_continue=false; старый thread без привязанной TAUSIK-сессии не открывается. Дефолты: advisory {24, 2500000, 140000} и hard {32, 4000000, 180000} в указанном порядке полей. Каждый advisory-порог должен быть ниже hard.

Codex отдаёт native identity и usage из локального журнала. Хост без таких сигналов возвращает level=unavailable с причиной и fail-open использует прежние советы по времени и вызовам. Завершение и повторное открытие TAUSIK-сессии в том же host thread не делает fresh_context=true.

Языки поиска по коду (RAG) ​

КлючПо умолчаниюСмысл
rag.extra_extensions{}Дополнительные типы файлов для индекса, {".unity": "unity-scene"}. Встроенное расширение не переопределяется. Godot (.gd, .gdshader, .tscn, .tres, .godot) встроен с 1.10.
rag.boundaries{}Где резать язык на чанки, {"unity-scene": "^--- !u!"} (многострочная регулярка). Кривая запись пропускается и называется в rag_status в language_config.problems.

Проверка обновления ​

КлючПо умолчаниюСмысл
updates.checktrueНе чаще раза в сутки SessionStart отсоединённо запускает tausik update-check: один анонимный GET к releases/latest репозитория Kibertum/tausik-core на GitHub, без данных о проекте. status называет вышедшую версию. false выключает; состояние — в tausik doctor.

Кэш верификации (SENAR Rule 5) ​

КлючДефолтНазначение
verify_cache_ttl_seconds600Сколько секунд зелёный verify-run переиспользуется до перезапуска gates. Уменьши для security-critical проектов.

Настройки из быстрого старта ​

Все ключи лежат в корне .tausik/config.json, если путь не говорит иного.

КлючПо умолчаниюНазначение
context_tier"minimal"Размер порождаемого файла правил: "minimal" (по умолчанию, с лимитом), "standard", "full" (расширенные указатели). Неизвестное значение bootstrap отклоняет; tausik doctor сверяет дрифт с сохранённым уровнем.
output_mode"off""caveman" добавляет сжатую прозу. В любом режиме действуют единые правила: называть исполнителя и действие, предпочитать активный залог, давать одно действие на предложение и один термин на понятие. Это многоязычная рекомендация, а не заявление соответствия ASD-STE100. Код, вывод инструментов и SENAR-доказательства остаются целиком. Ошибочное значение откатывается к "off".
model_profileне заданСлаг профиля хоста (a-z, цифры, дефисы), например claude, codex. Bootstrap записывает его, когда задана TAUSIK_MODEL_PROFILE; неверное значение прерывает bootstrap. python bootstrap/bootstrap.py --refresh обновляет только конфигурацию.
mcp.compact_tool_listtrue после bootstrapОбъявляет полные определения ядра workflow и короткие определения остальных инструментов; полная отложенная схема доступна через tausik_tool_schema. Явное false сохраняется. Отсутствующий или повреждённый конфиг безопасно возвращает полный список.
task_done.auto_verifyfalsetrue заставляет task done прогонять гейты внутри вызова и закрывать задачу без подписанной квитанции. Это не обход гейтов — они работают, — но квитанция теряется, поэтому проверка доверия конфигурации считает ключ ослаблением, и доверенный тир возвращает его назад (scripts/config_trust.py). Лучше task done <slug> --ac-verified --verify: один вызов и квитанция.

Для запросов на объяснение prompt-hook добавляет условную матрицу формата. Краткая проза остаётся fallback; таблица нужна для повторяющихся точных сравнений, Mermaid — для связанной структуры, HTML — только для явной или названной интерактивной потребности. Видео роутер не выбирает. Обычные запросы не платят за эту добавку.

Файлы правил сохраняются после первой записи. CLAUDE.md, AGENTS.md, .cursorrules, QWEN.md и файл правил OpenCode bootstrap не перезаписывает, если они уже есть, поэтому поздняя смена context_tier или output_mode до них не доходит. Bootstrap об этом говорит; удалите порождённый файл и запустите bootstrap заново или поправьте руками.

MCP-закрытие возвращает структуру. tausik_task_done отвечает полями stage, gate_results и blocking_failures, чтобы агент чинил упавшее, не разбирая прозу.

Стеки ​

КлючДефолтНазначение
custom_stacks[]Список custom stack slug'ов, принимаемых task add --stack X.

Gates ​

КлючДефолтНазначение
gates{}Per-gate overrides: { "pytest": { "enabled": true }, "filesize": { "max_lines": 600 } }. Мержится поверх default_gates.py.

Файлы инструкций агента (блок DYNAMIC) ​

tausik update-claudemd переписывает блок между <!-- DYNAMIC:START --> и <!-- DYNAMIC:END --> в CLAUDE.md и, если он лежит рядом, в AGENTS.md. AGENTS.md в большинстве проектов версионируется, поэтому его содержимое — политика, а не случайность (GitLab #14):

КлючУмолчаниеНазначение
claudemd.sibling_dynamictruetrue: AGENTS.md обновляется блоком без «Shared knowledge — from other projects» — знания чужих проектов не попадают в историю этого репозитория, а хвост памяти, под которым ничего не осталось, опускается. false: AGENTS.md не пишется вовсе; CLAUDE.md обновляется как раньше. Выключает только JSON-булево false — строка "false" или 0 читаются как «включено». Ключ читается из .tausik/ рядом с записываемым файлом.

Гейт коммита claudemd_state судит каждый файл по тому же плану, которому следует писатель: сиблинг, который политика не пишет, не судится, а сиблинг, чьё единственное знание было бы чужим, хвоста не должен.

Публикация (что скрывает вычищенный экспорт) ​

Общее хранилище (~/.tausik-knowledge) не требует настройки: --global у decide / memory add пишет в него, $TAUSIK_HOME переносит. Эти ключи читает только knowledge export --redacted (см. knowledge-store.md).

КлючДефолтНазначение
publication.project_names[]Имена проектов, заменяемые на [REDACTED:project], в дополнение к имени каталога этого проекта.
publication.private_url_patterns[]Regex-строки; URL, подходящий под одну из них, становится [REDACTED:url].
brain.local_mirror_path~/.tausik-brain/brain.dbЧитается только разовым knowledge import-brain: где отставленный транспорт Notion оставил локальное зеркало.

Ставки кредитов подписки Codex ​

codex_subscription_credit_rates необязателен; встроенной таблицы нет. Датированная таблица добавляет к исходным счётчикам metrics tokens --host codex стоимость принятой задачи в кредитах:

json
{
  "codex_subscription_credit_rates": {
    "source": "https://developers.openai.com/docs/pricing",
    "as_of": "2026-10-02",
    "unit": "credits_per_million_tokens",
    "models": {
      "gpt-5.6-sol": {"input": 100, "cached_input": 10, "output": 500}
    }
  }
}

Указывайте ставки, действующие для вашего аккаунта и даты. Это кредиты подписки, а не API-доллары и не пересчёт остатка включённой квоты.

Пример ​

json
{
  "session_max_minutes": 240,
  "session_idle_threshold_minutes": 15,
  "host_context_budget": {
    "advisory": {"responses": 20, "input_tokens": 2000000, "context_tokens": 120000},
    "hard": {"responses": 28, "input_tokens": 3500000, "context_tokens": 170000}
  },
  "verify_cache_ttl_seconds": 1200,
  "custom_stacks": ["ruby", "elixir"],
  "gates": {
    "filesize": { "max_lines": 500 },
    "ruff": { "enabled": false }
  },
  "publication": {
    "project_names": ["acme"],
    "private_url_patterns": ["acme\\.internal"]
  },
  "claudemd": { "sibling_dynamic": false }
}

Health check ​

tausik doctor (v1.3+) проверяет согласованность config + venv + DB + skills и выдаёт actionable next steps.