Skip to content
Apothem
Использование

Написание правил

Создавайте, задавайте область действия и поддерживайте поведенческие правила Apothem.

Правила — это файлы Markdown с расширением .md в src/apothem/rules/.

Frontmatter правила

---
name: "..."
description: "..."
pathFilter: ""            # empty string for always-on; a glob for path-filtered
alwaysApply: true         # true for always-on; false for path-filtered
---

Области действия правил

Область действия правила задаётся двумя полями frontmatter, alwaysApply и pathFilter:

alwaysApplypathFilterКогда применяется
true"" (пусто)Всегда: каждая сессия, каждый файл
falseglob-шаблон вида "**/*.py"Фильтр по пути: только когда активный файл соответствует шаблону

Пять поставляемых правил действуют всегда: agnostic-posture, authority-inquiry, session-closure, context-management и индекс правил. Постоянно действующее правило расходует контекст в каждой сессии, поэтому новое правило SHOULD быть отфильтровано по пути с помощью glob-шаблонов, которые называют регулируемые им файлы; фильтр из одного ** ничего не ограничивает, и Claude Code загружает такое правило при запуске так же, как постоянно действующее. Поставляемый корпус ограничивает набор постоянно действующих правил этим списком и предельным размером в байтах; правило, переведённое в постоянно действующие, меняет и то и другое в том же изменении. Указывайте каждое добавляемое вами правило в индексе правил (apothem-rule-index), чтобы сессия в окружении, которое не ограничивает правила по пути, всё равно его находила. Сопутствующее правило (<parent>-<aspect>) берёт pathFilter своего родителя или более узкий, чтобы никогда не загружаться без родителя. Не давайте собственному правилу имя apothem-rule-index: установка создаёт резервную копию файла правила с этим именем и перезаписывает его.

Пример правила

---
name: "python-conventions"
description: "Python style conventions for this project"
pathFilter: "**/*.py"
alwaysApply: false
---

# Python conventions

- Use type annotations on all public functions.
- Maximum line length: 88 characters.
- Prefer explicit over implicit.

Применение правил к окружениям

После написания правила обновите каждый установленный адаптер окружения. Выполните apothem harnesses list, чтобы увидеть установленный набор, затем вызовите update по одному разу для каждого окружения:

apothem update --harness claude-code
apothem update --harness cursor --project /path/to/project

Окружению уровня проекта при обновлении нужен --project, как во второй строке; окружению уровня пользователя он не нужен.

Валидация правил

Запустите валидатор frontmatter для написанного вами файла правила. В чекауте Apothem PYTHONPATH=src делает пакет импортируемым; после установки через скрипт используйте вместо него PYTHONPATH="$HOME/.apothem/src".

PYTHONPATH=src python -m apothem.conformity.gate --check frontmatter-grep src/apothem/rules/<rule>.md

Проверка per-write, такая как frontmatter-grep, принимает проверяемый файл или --stdin, чтобы прочитать содержимое из стандартного ввода; без того и другого она ожидает ввод на стандартном вводе. Автономная проверка вместо этого принимает корневой каталог, как в --check naming-grep ..

On this page