
Security News
PodRocket Podcast: Inside the Recent npm Supply Chain Attacks
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
CLI to extract and format linting rules into Markdown for documentation and AI agents
No more maintaining coding guidelines. Your linter rules to AI instructions, instantly.
Rulens is a CLI tool that extracts and formats linting rules into Markdown documentation. It analyzes your project's Biome and ESLint configurations and generates comprehensive documentation of all active linting rules with descriptions.
Rulens works with existing linting configurations in your project:
Rulens will automatically detect and use the appropriate linting tools from your project's node_modules/.bin
directory. If not found, it will attempt to use globally installed versions.
# Using npm
npm install -D rulens
# Using pnpm
pnpm add -D rulens
# Using yarn
yarn add -D rulens
Run this command in your project root to generate the documentation:
npx rulens generate
That's it! You'll find a docs/lint-rules.md
file containing your linting rules in an AI-friendly format.
Add this prompt directive to your AI coding assistant instructions for immediate awareness of your coding standards:
IMPORTANT: Read coding guidelines in docs/lint-rules.md before beginning code work
This simple instruction helps AI tools like GitHub Copilot, Cursor, Claude, and other assistants to follow your project's linting standards from the start.
See also docs/lint-rules.md and CLAUDE.md in the rulens project.
The generate
command creates Markdown documentation from your linting configuration:
# Basic usage - generates Markdown at docs/lint-rules.md
rulens generate
# Custom output path
rulens generate --output custom-path.md
# Custom ESLint config path
rulens generate --eslint-config custom-eslint.config.js
# Pass additional arguments to biome
rulens generate --biome-args "--somearg value"
The lint
command verifies that your documentation is up-to-date with your current configuration:
# Basic usage - verifies docs/lint-rules.md is up-to-date
rulens lint
# With auto-update
rulens lint --update
# Custom options
rulens lint --output custom-path.md --verbose
If the documentation is out of date, the command exits with code 1, causing your CI build to fail.
Option | Description | Default |
---|---|---|
--biome-args <args> | Additional arguments to pass to biome rage | - |
--eslint-config <path> | Path to ESLint config file | Auto-detected* |
--output <file> | Output file path | docs/lint-rules.md |
--verbose | Enable verbose mode with detailed output | false |
--help | Display help information | - |
--version | Display version number | - |
Option | Description | Default |
---|---|---|
--biome-args <args> | Additional arguments to pass to biome rage | - |
--eslint-config <path> | Path to ESLint config file | Auto-detected* |
--output <file> | Output file path to verify | docs/lint-rules.md |
--update | Update the output file if it's out of date | false |
--verbose | Enable verbose logging with detailed info and diffs | false |
* ESLint config is auto-detected in the following order:
eslint.config.js
, eslint.config.mjs
, eslint.config.cjs
eslint.config.ts
, eslint.config.mts
, eslint.config.cts
.eslintrc.js
, .eslintrc.json
, .eslintrc.yaml
, .eslintrc.yml
, .eslintrc
Rulens provides built-in support for CI/CD pipelines through the lint
command, which verifies that your documentation is up-to-date with your actual configuration. The command exits with code 1 when documentation is out of date, making it ideal for CI pipelines.
name: Verify Lint Rules Documentation
on:
push:
branches: [main]
paths:
- ".eslintrc*"
- "eslint.config.*"
- "biome.json"
- "package.json"
pull_request:
branches: [main]
paths:
- ".eslintrc*"
- "eslint.config.*"
- "biome.json"
- "package.json"
jobs:
verify-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: "20"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Verify lint rules documentation
run: npx rulens lint
verify-lint-docs:
stage: test
script:
- npm ci
- npx rulens lint
only:
changes:
- .eslintrc*
- eslint.config.*
- biome.json
- package.json
For automatically updating documentation and creating a commit:
name: Update Lint Rules Documentation
on:
push:
paths:
- ".eslintrc*"
- "eslint.config.*"
- "biome.json"
- "package.json"
jobs:
update-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm install
- name: Update lint rules documentation if needed
run: npx rulens lint --update
- name: Check for changes
id: git-check
run: |
git diff --exit-code docs/lint-rules.md || echo "changes=true" >> $GITHUB_OUTPUT
- name: Commit changes if needed
if: steps.git-check.outputs.changes == 'true'
run: |
git config --local user.email "actions@github.com"
git config --local user.name "GitHub Actions"
git add docs/lint-rules.md
git commit -m "docs: update lint rules documentation"
git push
You can use Rulens with pre-commit hooks to ensure documentation stays up-to-date locally:
# Using Husky
npx husky add .husky/pre-commit "npx rulens lint --update"
# Install dependencies
pnpm install
# Build
pnpm build
# Development with watch mode
pnpm dev
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverage
# Run tests with coverage and generate badge
pnpm test:coverage:badge
# Format code
pnpm fmt
# Lint code
pnpm lint
MIT
Contributions are welcome! Feel free to open issues or submit pull requests.
0.2.2
FAQs
CLI to extract and format linting rules into Markdown for documentation and AI agents
We found that rulens demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.