A decent ESLint configuration
npm install eslint-config-decent
A decent ESLint configuration for TypeScript projects.
``mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default config({
tsconfigRootDir: import.meta.dirname,
});
`
`mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default config({
parserOptions: {
projectService: {
defaultProject: 'tsconfig.json',
},
tsconfigRootDir: import.meta.dirname,
},
});
`
`mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default config({
enableRequireExtensions: false,
tsconfigRootDir: import.meta.dirname,
});
`
`mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default [
...config({
tsconfigRootDir: import.meta.dirname,
}),
{
files: ['*/.ts'],
rules: {
'@typescript-eslint/no-confusing-void-expression': 'off',
},
},
];
`
This package includes an Agent Skill that teaches AI coding assistants (Claude Code, OpenCode, etc.) to follow the same TypeScript standards enforced by the ESLint rules.
`bash`
npx skills add jgeurts/eslint-config-decent
Or copy manually:
`bash`
mkdir -p .claude/skills
cp -r node_modules/eslint-config-decent/enforcing-typescript-standards .claude/skills/
> Note: The skill is copied to your project and won't update automatically. Re-run the install command after updating eslint-config-decent to get the latest skill instructions.
Once installed, AI assistants will automatically apply the project's TypeScript standards when creating or modifying .ts and .tsx files. The skill instructs the AI to:
- Write code with explicit return types and member accessibility
- Organize imports correctly (order, extensions, type-only imports)
- Follow class member ordering conventions
- Avoid anti-patterns like useless comments, nested ternaries, and await in loopsnpm run lint:code
- Run to verify compliance before completing tasks
To override or extend the default instructions, edit the SKILL.md` file in your project's skills directory:
MIT