Agent skill

Implementing Lint Rules

by flint-fyi in flint-fyi/flint

Implements ESLint-style lint rules with proper AST handling, targeted reporting, and comprehensive unit tests.

MITAuto-check passedDevelopment

Install Implementing Lint Rules

skills CLI
$ npx skills add flint-fyi/flint --skill implementing-lint-rules -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install flint-fyi/flint implementing-lint-rules --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/flint-fyi/flint.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/implementing-lint-rules .claude/skills/implementing-lint-rules && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
implementing-lint-rules
GitHub stars
312
Token cost
~857 tokens
SKILL.md length
481 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Implements ESLint-style lint rules with proper AST handling, targeted reporting, and comprehensive unit tests.

  • Creating new lint rules
  • SKILL.md covers Reporting, Messages, AST Node Handling and Unit Tests, plus 1 more section
  • Calls npx
  • Modifying existing rule implementations

What it does

Implementing Lint Rules is an agent skill from flint-fyi/flint. Implements ESLint-style lint rules with proper AST handling, targeted reporting, and comprehensive unit tests. Use when creating new lint rules or modifying existing rule implementations.

Its SKILL.md is about 860 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Linting and formatting and Unit testing. It works with ESLint and TypeScript. The repository describes itself as: [Experimental] A fast, friendly linter for JavaScript, TypeScript, and more. ❤️🔥. The licence is MIT.

When your agent uses it

  • Creating new lint rules
  • Modifying existing rule implementations

Example prompts

  • “Use the implementing-lint-rules skill to implement ESLint-style lint rules with proper AST handling, targeted reporting, and comprehensive unit tests”
  • “/implementing-lint-rules”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit d8f83ec. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Implementing Lint Rules loads about 857 tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 481 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~53
When it runs · the whole SKILL.md, loaded when a task matches
~857

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from flint-fyi/flint at commit d8f83ec, republished under its MIT licence (© flint-fyi). 481 words, ~857 tokens.

Download SKILL.mdSave it as .claude/skills/implementing-lint-rules/SKILL.md (or your agent's skills folder).
name
implementing-lint-rules
description
Implements ESLint-style lint rules with proper AST handling, targeted reporting, and comprehensive unit tests. Use when creating new lint rules or modifying existing rule implementations.

Implementing Lint Rules

Patterns and practices for implementing lint rules in Flint.

Reporting

Prefer targeted report ranges when possible. Example: if an issue is with specific characters in a literal, don't report the whole node; report the smallest range that includes those characters.

Set the plugin, such as "logical" or "javascript", that they correspond to in the rule data.

If two node visitor functions have roughly the same body text, try to extract to a helper function.

Messages

Rule report messages should not be prescriptive "don't X". They should focus on educating on what the problem is, not just directly saying the preferred approach. Instead, lean towards "do X". Example: instead of messages like "Octal escape sequences should not be used in string literals.", use messages like "Prefer hexadecimal or Unicode escape sequences over legacy octal escape sequences.".

AST Node Handling

When you have a TypeScript AST node, such as AST.Expression or AST.*Declaration, check whether nodes are certain types using a comparison like node.kind === SyntaxKind.BinaryExpression. Don't use ts.* nodes or APIs that work on them if at all possible, since they don't perform type narrowing as well as our AST discriminated union.

Always pass source files to node.getStart(sourceFile) - don't just call node.getStart(). Same with other TypeScript APIs that optionally take in a sourceFile.

Don't use node.getText(sourceFile) APIs to check if two nodes are equivalent. Use hasSameTokens or similar.

Show full SKILL.md (253 more words)Show less

Unit Tests

Tip: to re-run just the tests for a rule, run npx vitest run <rule-name>. Example: to rerun tests for the unnecessaryCatches rule, run npx vitest run unnecessaryCatches.

Look at other rule tests and try to mirror their layouts and styles as much as possible.

Make sure each piece of logic in a rule is unit tested. If removing a piece of logic doesn't fail unit tests, that's likely a sign you're missing unit testing some edge case. If you can't find an edge case that requires the logic, then remove that logic. Example: if removing node.parent.kind === SyntaxKind.Identifier && from an if statement doesn't fail unit tests, then maybe you're not testing the case of a non-identifier node parent? If that's possible, add those test case(s). If that's not possible, remove the logic.

Don't use tabs in template literal strings. Indent with four spaces.

If valid test cases can be collapsed to one line, they should be.

Start all invalid test case code after the first line (i.e. snapshot: and then newline), so that snapshot ~s visually show up underneath the flagged characters of code.

Don't use foo/bar/etc. names. Use succinct descriptive ones instead. Example: instead of let foo; use let value;. Instead of foo-.-bar use before-.-after.

If a rule has fixes and/or suggestions, those should be tested in unit tests.

JSX Rules

For JSX rules, don't check dangerouslySetHTML - that's React-specific.

Don't abbreviate attribute names to attr - prefer attributes. Also, if something is based on node.attribute.properties, call it property, not attr or prop.

© flint-fyi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/implementing-lint-rules of flint-fyi/flint.

Open the folder on GitHubat commit d8f83ec

Compare with similar skills

Implementing Lint Rules next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Implementing Lint Rules compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Implementing Lint Rules this skillflint-fyi/flint312—~857Automated safety check: PassMIT
Npx CLIjwynia/agent-skills166—~2.4kAutomated safety check: PassNone
Typescript ToolingHoangNguyen0403/agent-skills-standard571—~688Automated safety check: PassMIT
Create Saleor Packagesaleor/apps162—~608Automated safety check: PassCustom licence
Antfuoyjt/uniapp-vue3-template627—~1.3kAutomated safety check: PassMIT
Run Pre Commit Checksmicrosoft/vscode-python-environments141—~898Automated safety check: PassMIT

Similar skills

  • Npx CLI

    jwynia/agent-skills

    Build and publish npx-executable CLI tools using Bun as the primary toolchain with npm-compatible output.

    166 GitHub stars~2.4k tokensUpdated 7 mo ago
    DevelopmentAuto-check passed
  • Typescript Tooling

    HoangNguyen0403/agent-skills-standard

    Development tools, linting, and build config for TypeScript.

    571 GitHub stars~688 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Scaffold a new shared package in the saleor-apps monorepo under ./packages/.

    162 GitHub stars~608 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Antfu

    oyjt/uniapp-vue3-template

    Anthony Fu's {Opinionated} preferences and best practices for web development

    627 GitHub stars~1.3k tokensUpdated 4 mo ago
    DevelopmentAuto-check passed
  • Run Pre Commit Checks

    microsoft/vscode-python-environments

    Official

    Run the mandatory pre-commit checks before committing code. An agent skill from microsoft/vscode-python-environments.

    141 GitHub stars~898 tokensUpdated today
    Testing & QAAuto-check passed
  • npm Package

    jwynia/agent-skills

    Build and publish npm packages using Bun as the primary toolchain with npm-compatible output.

    166 GitHub stars~2.1k tokensUpdated 7 mo ago
    DevelopmentAuto-check passed

Questions about Implementing Lint Rules

What does Implementing Lint Rules do?

Implements ESLint-style lint rules with proper AST handling, targeted reporting, and comprehensive unit tests. Implementing Lint Rules is an agent skill from flint-fyi/flint. Implements ESLint-style lint rules with proper AST handling, targeted reporting, and comprehensive unit tests.

When should I use Implementing Lint Rules?

Implementing Lint Rules fits situations like: creating new lint rules; modifying existing rule implementations.

How do I install Implementing Lint Rules in Claude Code?

Run `npx skills add flint-fyi/flint --skill implementing-lint-rules -a claude-code`. Or copy the skill folder (.agents/skills/implementing-lint-rules in flint-fyi/flint) into .claude/skills/implementing-lint-rules in your project. Claude Code loads it when a task matches its description.

How do I install Implementing Lint Rules in Codex?

Run `npx skills add flint-fyi/flint --skill implementing-lint-rules -a codex`. Or copy the skill folder (.agents/skills/implementing-lint-rules in flint-fyi/flint) into .agents/skills/implementing-lint-rules in your project. Codex loads it when a task matches its description.

Can I use Implementing Lint Rules in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add flint-fyi/flint --skill implementing-lint-rules -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/implementing-lint-rules, .gemini/skills/implementing-lint-rules, .github/skills/implementing-lint-rules and .opencode/skills/implementing-lint-rules in your project.

What does Implementing Lint Rules need to run?

Going by SKILL.md and its folder, Implementing Lint Rules needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Implementing Lint Rules access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Implementing Lint Rules safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Implementing Lint Rules use?

Implementing Lint Rules is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Implementing Lint Rules use?

About 857 tokens (SKILL.md is roughly 3.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Implementing Lint Rules?

Skills that share tags, products or a category with Implementing Lint Rules: Npx CLI (jwynia/agent-skills, 166 stars), Typescript Tooling (HoangNguyen0403/agent-skills-standard, 571 stars), Create Saleor Package (saleor/apps, 162 stars) and Antfu (oyjt/uniapp-vue3-template, 627 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Implementing Lint Rules?

flint-fyi (a GitHub organization) maintains it in flint-fyi/flint, which has 312 GitHub stars. The repository was last updated on October 8, 2026.

Source: flint-fyi/flint on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.