filter-translatorlisted
Install: claude install-skill vslipchenko/ai
# Filter Translator
Turn a plain-text description of a filter into a correct expression in one
of the supported target formats, grounded in that format's real grammar
(bundled reference files, not guessed from memory) and confirmed with the
user before final serialization.
## Supported formats (v1)
| Format | Reference file |
|---|---|
| OData `$filter` (v4/v4.01) | `references/odata.md` |
| JQL (Jira Query Language) | `references/jql.md` |
| MongoDB query filter documents | `references/mongodb.md` |
| SQL `WHERE` clause | `references/sql.md` |
| RQL (FIQL-derived) | `references/rql.md` |
This is a fixed, curated set — not an open-ended "any format" converter.
Other formats (GraphQL filter args, Elasticsearch/Lucene, LDAP, SCIM,
JSON:API, Google AIP-160/CEL, Kubernetes label selectors, ...) aren't
supported yet; adding one is a matter of adding another reference file, not
a redesign.
**RFC 3986 (`references/rfc3986.md`) is not a selectable target format** —
it has no filter grammar of its own (no operators, no AND/OR), so there's
nothing to "convert to." It's the percent-encoding mechanism OData and RQL
use internally in Step 7, when their output needs to be embedded in an
actual URL rather than handed over as a raw expression.
`<SKILL_DIR>` below is this skill's own announced base directory (the path
shown when this skill loads, ending in `.../skills/filter-translator`) —
scripts live at `<SKILL_DIR>/scripts/encode_query.{py,mjs}`.
## Step 1 — Resolve the target forma