skills/lintroll/SKILL.md
Opinionated ESLint configuration and CLI for TypeScript, Vue, React, JSON, YAML, and Markdown. Use when linting code, fixing style issues, or configuring ESLint in projects using lintroll.
npx skillsauth add privatenumber/lintroll lintrollInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Batteries-included ESLint with 12+ plugins for TypeScript, Vue, React, JSON, YAML, and Markdown.
lintroll . # Lint directory
lintroll . --fix # Auto-fix
lintroll . --fix --cache # Fix with caching
lintroll --git . # Only git-tracked files
lintroll --git --fix . # Fix only tracked files
lintroll --staged --fix # Pre-commit hook
lintroll . --node # Enable Node.js rules
lintroll . --node=./scripts # Node.js rules for specific paths
lintroll . --quiet # Errors only (no warnings)
lintroll . --allow-abbreviation db # Allow specific abbreviations
| Rule | Enforced style |
|------|---------------|
| Indentation | Tabs |
| Quotes | Single |
| Semicolons | Always |
| Line length | 100 chars max |
| Trailing commas | Multiline only |
| Functions | Arrow (except this/arguments/generators/hoisting) |
| Types | type = over interface |
| Type imports | Separate import type from value imports |
| No any | Use unknown and narrow |
| Unused vars | Prefix with _ (e.g. _unused) |
| No abbreviations | db → database, env → environment, pkg → packageJson |
| Import extensions | .js not .ts (unless allowImportingTsExtensions: true) |
| React filenames | PascalCase (UserProfile.tsx) |
Common renames enforced by unicorn/prevent-abbreviations:
| Abbreviation | Full name |
|-------------|-----------|
| args | arguments_ (reserved word) |
| db | database |
| env | environment |
| pkg | packageJson |
| temp | temporary |
| res | response |
| req | request |
| dir | directory |
| err | error |
| msg | message |
Loop indices i, j are always allowed. Add more with --allow-abbreviation.
Zero-config:
// eslint.config.js
export { default } from 'lintroll'
Custom:
// eslint.config.ts
import { defineConfig, pvtnbr } from 'lintroll'
export default defineConfig([
{ ignores: ['tests/fixtures/**/*'] },
...pvtnbr({
node: true,
allowAbbreviations: {
exactWords: ['i', 'j'],
substrings: ['db', 'env']
}
})
])
For full API types, see node_modules/lintroll/dist/index.d.mts.
| Feature | Detection |
|---------|-----------|
| Vue.js | *.vue files present — rules apply automatically |
| TypeScript | tsconfig.json present |
| Node.js | .cjs, .mts, scripts/**, bin entries |
node_modules/**, dist/**, vendor/**package-lock.json, pnpm-lock.yaml*.min.js, .vitepressCLAUDE.md, .claude/, copilot.json, .cursorrulesname → version → description → ... → scripts → dependencies → devDependencies{ "key": "value" }.d.ts — declaration files follow standard conventions.ts extensions in imports — use .js unless tsconfig has allowImportingTsExtensions: trueskills/ directories — automatically ignored (not linted as project code)development
# Example Skill Instructional markdown with code examples that shouldn't be linted. ## Usage ```js // Semicolons and wrong indentation would normally fail const result = doSomething(); if (result) { console.log(result); } ``` ```ts // TypeScript example with style violations interface Config { name: string; value: number; } const config: Config = { name: "test", value: 1, }; ```
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------