Start¶
Botica is a linter and a set of recipes for the repositories of a team. botica lint runs the
rules of its catalog over the files of a project, and the catalogs that the project adds. A rule
checks one standard. botica recipe install adds what a kind of repository
needs to a repository: the selection of rules, the hooks of prek, the workflows of CI, the agent
skills and the lines of .gitignore.
botica lint never calls a model or the network. It reads each file once and runs its rules in
parallel. A rule that no deterministic check can express is a judgment rule: botica exports it
for a judge, abide, and filters what the judge reports.
Install¶
Botica is one binary. PyPI publishes it as the wheel botica, which also holds the module
botica.sdk. The binary runs without Python.
A first run¶
botica lint # the active rules over the current directory
botica rules --all # every rule, whether it is active, and why
botica explain no-utils # one rule: what it asks, how it is built, how it is configured here
botica lint exits with 0 when no finding is an error, with 1 when one is, and with 2 when the run
itself fails. Lint lists the options.
Set up a repository¶
From the root of the repository, with uv on the PATH, and
npx for the recipes that install skills:
botica recipe list # the recipes and their steps
botica recipe install base base-python agent-claude-code ci-python repo-public
botica recipe check base base-python agent-claude-code ci-python repo-public
install writes what is missing and leaves an existing file as it is: it reports the file as
pending and exits with 1. It writes the rules of the recipes to the select of a new
botica.toml. Commit skills-lock.json afterwards: .agents/skills/ is gitignored, and
npx skills experimental_install restores it from the manifest. Recipes
describes each step.
Next¶
- Configuration:
botica.toml, the selection and the settings of a rule. - Findings: silence a finding, and keep the old ones in a baseline.
- prek and CI: run botica on each commit and each pull request.
- Editor: the findings in the editor, through
botica server. - Catalogs of a project: the rules of a project, in
.botica/rules/.