ironlint-init
Bootstraps a project's .ironlint.yml with IronLint's generic baseline, then helps the user deliberately add checks for their stack and existing linters. Use…
Reviews ironlint check health from the telemetry log. Use when the user says "review my ironlint checks", "check health", "which ironlint checks are noisy", "find dead ironlint checks", "ironlint review", or asks for an audit of .ironlint.yml.
$ npx -y skills add ironlint/ironlint --skill ironlint-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ironlint-reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Reviews ironlint check health from the telemetry log. Use when the user says "review my ironlint checks", "check health", "which ironlint checks are noisy", "find dead ironlint checks", "ironlint review", or asks for an audit of .ironlint.yml.
name: ironlint-review description: Reviews ironlint check health from the telemetry log. Use when the user says "review my ironlint checks", "check health", "which ironlint checks are noisy", "find dead ironlint checks", "ironlint review", or asks for an audit of .ironlint.yml. metadata: author: dynamik-dev version: 0.2.0 category: workflow-automation tags: [linting, telemetry, check-pruning]
Audit the check set against telemetry. Surface candidates for removal, scope adjustment, or a source fix.
`.ironlint/log.jsonl` — one record per check invocation, with a **per-check** breakdown. Each line:
{
"type": "check",
"ts": "2026-06-15T00:00:00Z",
"file": "src/foo.rs",
"status": "block",
"elapsed_ms": 42,
"checks": [
{"check": "no-debug", "status": "block", "elapsed_ms": 30},
{"check": "no-todo", "status": "pass", "elapsed_ms": 12}
]
}`internal_error` > `pass`). There is no `warn` tier.
**specific checks**, not just files. `checks` is empty when no check matched the file.
…) — it *couldn't run*, which is a broken check, not a finding.
1. Read `.ironlint/log.jsonl`. 2. Aggregate over the last N entries (default last 1000, or all if fewer), grouping by `checks[].check` (and cross-referencing `file`). 3. Surface concerning patterns per check:
strict, or the code it covers genuinely needs fixing at the source.
never matches anything dirty, or it never fires. Confirm it still earns its keep.
or remove it; a check that can't run protects nothing.
For each concerning check, propose ONE of:
in code, not in the check.
it should.
is noise in the config.
or the tool it shells out to.
Never apply recommendations silently. Present each one and ask the user. To re-confirm what a check does on a file, run `ironlint check --file <path> --check <id> --format json` and read the verdict.
Reviewed N entries from .ironlint/log.jsonl (date range A → B). Per-check health: | Check | Runs | pass | block | error | Note / recommendation | |-----------------|------|------|-------|-------|--------------------------------------------------------| | no-debug | 31 | 24 | 7 | 0 | High block rate (23%) — investigate src/api or tighten | | no-todo | 84 | 84 | 0 | 0 | No blocks — confirm it still earns its keep | | eslint-check | 12 | 9 | 0 | 3 | Broken (reason: not_found) — eslint missing on PATH | To re-confirm a check on a file: ironlint check --file <path> --check <id> --format json
`checks[].check` to attribute outcomes to a specific check.
Run your project's checks with consistent selection, timeouts, and machine-readable results. IronLint gives AI coding workflows a deterministic evaluation step using the same shell commands you run locally or in CI.
Bootstraps a project's .ironlint.yml with IronLint's generic baseline, then helps the user deliberately add checks for their stack and existing linters. Use…