Skip to content
Agentmart
Submit a tool

poly-lint-format

Reference for poly, the single-binary multi-language linter and formatter — per-language engines, the lint/fmt commands, poly.toml configuration, severity…

Skill by xberg-io

IndexedMIT★ 8
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/xberg-io-poly-lint-format

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Reference for poly, the single-binary multi-language linter and formatter — per-language engines, the lint/fmt commands, poly.toml configuration, severity behavior, and the shared CI validation workflow. Load when linting or formatting code, configuring poly.toml, or wiring poly into CI.

Use cases: devops, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/poly-lint-format

What's inside

Skill name
poly-lint-format
Description
Reference for poly, the single-binary multi-language linter and formatter — per-language engines, the lint/fmt commands, poly.toml configuration, severity behavior, and the shared CI validation workflow. Load when linting or formatting code, configuring poly.toml, or wiring poly into CI.
License
MIT
Instructions
66 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • name: missing

Files (2)

  • SKILL.md
  • index.md

SKILL.md (first lines)

# Poly

Poly is a single-binary multi-language linter and formatter, configured per repo in `poly.toml`.

## Engines

- Bundled: ruff (Python), oxc (JS/TS/JSON), taplo (TOML), rumdl (Markdown), sqruff (SQL), mago (PHP), YAML,
  CSS/SCSS, GraphQL, HCL, Dockerfile, rubyfmt (Ruby format only), markup_fmt (HTML/Vue/Svelte format only).
- Automatic when on `PATH`: rustfmt, gofmt, shellcheck. Opt-in: shfmt and the first-party formatters of Zig,
  Java, Kotlin, R, Swift, Dart, Gleam.
- Whole-project phase: cargo clippy and the other configured workspace tools.
- Git hooks: `poly hooks install` wires lint, format and Conventional-Commit message checks.
- Everything else (pyrefly, golangci-lint, checkstyle, credo, clang-format, actionlint) is a repo-configured
  `[tools.<name>]` or `[hooks.pre-commit.commands.<name>]` entry: read the repo's `poly.toml`.

## Commands

- Lint: `poly lint <paths>`
- Check formatting (dry-run): `poly fmt --check <paths>`
- Apply formatting: `poly fmt --fix <paths>`
- Apply lint autofixes: `poly lint --fix <paths>`

A bare `poly lint` or `poly lint .` also runs the whole-project phase: cargo clippy and the other configured
workspace tools, which compile. Naming paths runs only the per-file tier; `--no-workspace` (or `[lint]
workspace = false`) skips the phase on a whole-repo run, and `--workspace` forces it for named paths.

## Configuration

Per-repo `poly.toml` defines linting and formatting rules:

- `[discovery]` — exclude globs
- `[lint.<lang>.<tool>]` — select/ignore rules, settings like `pydocstyle_convention`, `line_length`
- `[per-file-ignores]` — file-specific exemptions
- `[fmt.<lang>.<tool>]` — formatter options
- `[hooks.builtin]` — git hook configuration
- `[tools.<name>]` — an external tool poly runs
- `[hooks.pre-commit.commands.<name>]` — an extra pre-commit command

The cache lives outside the repo (`poly cache stats`).

## Uncomment pass

`[lint.uncomment]` in `poly.toml` reports removable comments; `poly lint --fix` deletes them.

- `code_only = true` (the default) flags only comment blocks that read as commented-out code; prose
  comments are kept with or without a marker. `code_only = false` flags every comment that is not preserved.
- Preserved: `~keep` anywhere in the comment; the defaults `TODO`, `FIXME`, `HACK`, `XXX`, `NOTE`, `WARNING`,
  `COPYRIGHT`/`LICENSE`, the file header, shebangs and linter directives (`noqa`, `eslint-disable`, `@ts-ignore`,
  ...); and the repo's `preserve_patterns` (`SAFETY`, `SPDX`, ...). `SAFETY` is not a default.
- Doc comments are kept unless `remove_docs = true`; `remove_todos` / `remove_fixme = true` drop those markers.
- Test a change to these settings against staged or committed content: an uncommitted scratch file
  reports clean whatever it contains.
- Generated sources are exempted with `[per-file-ignores]` set to `["comment", "doc-comment"]` (the codes the
  uncomment pass emits), not by adding markers.

## Severity

Only error-severity findings fail a run; warnings are reported. Exit 0 is clean, 1 error findings, 2 the run
verified less than it claims (skipped or errored files): gate on `summary.checked` in `--format json`, not on
empty results.

## CI

Run linting and formatting validation in CI via the shared reusable workflow:

```yaml
uses: xberg-io/actions/.github/workflows/reusable-validate.yml@v1
```

This workflow runs `poly fmt --check .` then `poly lint .` with optional inputs `setup-rust` and `setup-python`.

After making changes, run `poly fmt --check` and `poly lint` on the changed paths.

From xberg-io/agent-conventions, MIT.

More from xberg-io/agent-conventions

Signals

Stars
8
Forks
2
Open issues
0
Last commit (this folder)
Oct 22, 2026 (7 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from xberg-io

Cite this page

poly-lint-format skill. Agent Mart. https://agentmart.dev/skills/xberg-io-poly-lint-format (last updated 2026-10-24)