Repository navigation
Rules
Rakesh Singh edited this page Oct 23, 2026
·
1 revision
Each rule is one small module in
src/toolism/rules/. The full description of every rule, with
its exact conditions, is generated into docs/rules.md (toolism rules prints the same list).
| Level | Id band | Meaning |
|---|---|---|
safe (default) |
SL0xx |
Validation-equivalent: the slim schema accepts exactly the same tool calls, and only information the model already has is removed |
annotations |
SL1xx |
Still validation-equivalent, but drops annotation text (examples, long descriptions) that might help the model; measure on your own evals |
| changes validation | SL2xx |
Reserved; none ship today |
| Id | Name | Removes |
|---|---|---|
| SL001 | redundant-title | Titles that only repeat the property, $defs key or tool name |
| SL002 | nullable-anyof |
anyOf: [{type: X}, {type: null}] → type: [X, "null"]
|
| SL003 | null-default |
default: null on optional properties |
| SL004 | inline-defs | Single-use $defs (inlined) and unused ones |
| SL005 | description-whitespace | Docstring indentation, trailing spaces, extra blank lines |
| SL006 | echo-description | Property descriptions that only repeat the property name |
| SL007 | stable-order | Nothing (off by default): sorts tools so prompt-cache prefixes stay stable |
| SL008 | noop-keywords | Keywords that never change validation |
| SL009 | schema-uri |
$schema URIs when the schema validates the same without them |
| Id | Name | Removes |
|---|---|---|
| SL101 | max-description-length | Truncates descriptions longer than max_chars at a sentence boundary |
| SL102 | drop-examples |
examples / example keywords |
OpenAI strict: true tools are respected: anything strict mode requires is left alone.
Want to write a rule? CONTRIBUTING has a 3-step guide.