Answers from the documentation; checking which model is on duty
Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
linter-docs - Skill - OpenSmartRoute
Skillv1.0.0
linter-docs
Deep linter reference for authoring or debugging a vigiles enforce() rule — plugin tables, AST selectors, type-aware rules, auto-fix, and edge cases for ESLint, Ruff, Pylint, RuboCop, Stylelint, and…
Imported from zernie/vigiles (skills/linter-docs/SKILL.md) via skills.sh. Install upstream with npx skills add zernie/vigiles --skill linter-docs. Copyright stays with the author.
Reference material for the linters vigiles cross-references. Open the file for
the linter you're working with when you need exact rule names, AST selectors,
or config details to author an enforce() rule (or diagnose why one is reported
missing or disabled).
JVM/Go linters (detekt, ktlint, Checkstyle, golangci-lint) and Cedar are
cross-referenced by enforce() but have no deep-dive file here yet — their
capabilities, config surfaces, and known limits (e.g. ktlint is format-only,
Checkstyle enabled-state is whitelist-only) are documented in
docs/linter-support.md.
These are read by the strengthen and edit-spec skills when matching a
guidance rule to a real linter rule. This skill is user-invoked (a reference,
not an action), so it never fires on its own — open the relevant file directly.
Use it
Installed into a catalogue, chosen by a router
Install linter-docs and it becomes one more candidate the router can pick - when it fits.
A listing is a routing target with a manifest: what it does, which domains it covers, what it costs and who publishes it. Once installed it sits beside your own models and tools, is scored like any other candidate for each request, and shows up in the trace when it wins. Ratings come from workspaces that installed it, one per account.
When a provider is down or over quota the request moves on; the trace says it did.
Copy one of these into your project. Installing also returns the manifest and these snippets.
# after Install: the listing is in your workspace's routing pool - a plan picks it for its slotcurl-s-X POST https://api.opensmartroute.ai/api/v1/route -H 'Authorization: Bearer $OSR_API_KEY' -H 'Content-Type: application/json' -d '{"text": "...", "plan": true}'
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.
zernie-vigiles-linter-docs.ocm.jsonjson
{
"ocm": "1",
"id": "zernie-vigiles-linter-docs",
"kind": "skill",
"name": "linter-docs",
"description": "Deep linter reference for authoring or debugging a vigiles enforce() rule — plugin tables, AST selectors, type-aware rules, auto-fix, and edge cases for ESLint, Ruff, Pylint, RuboCop, Stylelint, and Clippy. Use when you need the exact rule name or config for a specific linter, not for running a linter. (JVM/Go linters — detekt, ktlint, Checkstyle, golangci-lint — and Cedar have no deep-dive file yet; their reference lives in docs/linter-support.md.)",
"publisher": "zernie",
"version": "1.0.0",
"capabilities": {
"domains": [
"data_analysis",
"coding"
],
"tags": [
"skill-md",
"skills-sh"
],
"languages": [
"en"
]
},
"quality_prior": 0.6,
"examples": [
"Deep linter reference for authoring or debugging a vigiles enforce() rule — plugin tables, AST selectors, type-aware rules, auto-fix, and edge cases for ESLint, Ruff, Pylint, RuboCop, Stylelint, and Clippy. Use when you need the exact rule name or config for a specific linter, not for running a linter. (JVM/Go linters — detekt, ktlint, Checkstyle, golangci-lint — and Cedar have no deep-dive file yet; their reference lives in docs/linter-support.md.)"
],
"primary": false,
"metadata": {
"source": {
"provider": "skills.sh",
"repository": "https://github.com/zernie/vigiles",
"path": "skills/linter-docs/SKILL.md",
"ref": "HEAD",
"url": "https://www.skills.sh/zernie/vigiles/linter-docs",
"key": "zernie/vigiles/skills/linter-docs/SKILL.md"
}
},
"instructions": "Reference material for the linters vigiles cross-references. Open the file for\nthe linter you're working with when you need exact rule names, AST selectors,\nor config details to author an `enforce()` rule (or diagnose why one is reported\nmissing or disabled).\n\n| Linter | Reference |\n| --------- | -------------------------------------------------------------------------------------- |\n| ESLint | [`eslint.md`](eslint.md) — plugin table, AST selectors, type-aware rules, auto-fix |\n| Ruff | [`ruff.md`](ruff.md) — 800+ reimplemented rules, selection, auto-fix, pyproject config |\n| Pylint | [`pylint.md`](pylint.md) — plugin table, astroid AST, type inference, custom checkers |\n| RuboCop | [`rubocop.md`](rubocop.md) — gem table, node pattern DSL, auto-correct, custom cops |\n| Stylelint | [`stylelint.md`](stylelint.md) — plugin table, PostCSS AST, custom rules, SCSS |\n| Clippy | [`clippy.md`](clippy.md) — Rust lint groups and configuration |\n\n**JVM/Go linters (detekt, ktlint, Checkstyle, golangci-lint) and Cedar** are\ncross-referenced by `enforce()` but have no deep-dive file here yet — their\ncapabilities, config surfaces, and known limits (e.g. ktlint is format-only,\nCheckstyle enabled-state is whitelist-only) are documented in\n[`docs/linter-support.md`](../../docs/linter-support.md).\n\nThese are read by the `strengthen` and `edit-spec` skills when matching a\nguidance rule to a real linter rule. This skill is user-invoked (a reference,\nnot an action), so it never fires on its own — open the relevant file directly.",
"cost": {
"context_tokens": 417
}
}
Fetch it by URL: GET /api/v1/registry/zernie-vigiles-linter-docs/manifest?version=1.0.0
Reviews
Star ratings from people who tried it. One review per account; edit yours any time.
No reviews yet. Install it, try it, and be the first to rate it.