typescript-import-style
Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.
Best use case
typescript-import-style is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.
Teams using typescript-import-style should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/typescript-import-style/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How typescript-import-style Compares
| Feature / Agent | typescript-import-style | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# TypeScript Import Style Guidelines (Merge Conflict Reduction)
Import formatting and ordering rules to minimize merge conflicts when multiple developers or parallel agents modify the same file.
## CRITICAL: One Import Per Line
When importing multiple items from a module, put EACH import on its own line:
```typescript
// CORRECT - merge-friendly (each on separate line)
import {
alpha,
beta,
gamma,
} from 'some-module';
// WRONG - causes merge conflicts
import { alpha, beta, gamma } from 'some-module';
```
This is enforced by Prettier with `printWidth: 80`. With one-per-line, Git can merge imports from parallel changes without conflicts.
## Import Order (Top to Bottom)
1. **Node.js built-ins** (e.g., `import fs from 'fs'`, `import path from 'path'`)
2. **External packages** (e.g., `import React from 'react'`, `import express from 'express'`)
3. **Internal aliases** (e.g., `import { util } from '@/utils'`)
4. **Parent directory imports** (e.g., `import { Parent } from '../Parent'`)
5. **Sibling imports** (e.g., `import { Sibling } from './Sibling'`)
6. **Index imports** (e.g., `import { thing } from './index'`)
7. **Type-only imports** (e.g., `import type { MyType } from './types'`)
## Within Each Group
- Sort imports alphabetically by module path (case-insensitive)
- Sort named imports alphabetically within braces
- Sort export statements alphabetically
## Spacing
- Add one blank line between import groups
- No blank lines within a group
## Complete Example
```typescript
// Node.js built-ins
import fs from 'fs';
import path from 'path';
// External packages
import express from 'express';
import React from 'react';
// Internal aliases
import { config } from '@/config';
import { logger } from '@/utils';
// Parent imports
import { BaseService } from '../BaseService';
// Sibling imports (one per line when multiple)
import {
helperA,
helperB,
helperC,
} from './helpers';
import { utils } from './utils';
// Type imports (one per line when multiple)
import type { Config } from '@/types';
import type {
Request,
Response,
} from 'express';
```
## Named Exports
Sort named exports alphabetically, one per line when multiple:
```typescript
// CORRECT
export {
alpha,
beta,
gamma,
};
// WRONG
export { gamma, alpha, beta };
```
## Why This Matters
Sorted, one-per-line imports reduce merge conflicts because:
- New imports are inserted at predictable positions (alphabetically)
- Parallel tasks adding imports to the same file won't conflict
- Git can auto-merge changes on different lines
- Consistent structure makes diffs cleaner and reviews easier
## Tooling (Auto-enforced)
These rules are enforced by:
- **eslint-plugin-simple-import-sort**: Sorts imports/exports alphabetically
- **Prettier with `printWidth: 80`**: Forces line wrapping for multiple imports
Run `eslint --fix && prettier --write` before committing.
## ESLint Configuration
```javascript
// .eslintrc.js or eslint.config.js
module.exports = {
plugins: ['simple-import-sort'],
rules: {
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
},
};
```
## Prettier Configuration
```json
{
"printWidth": 80,
"singleQuote": true,
"trailingComma": "all"
}
```
## Re-export Patterns
When re-exporting from index files, follow the same one-per-line rule:
```typescript
// CORRECT
export {
ComponentA,
ComponentB,
ComponentC,
} from './components';
export type {
TypeA,
TypeB,
} from './types';
// WRONG
export { ComponentA, ComponentB, ComponentC } from './components';
```
## Dynamic Imports
Dynamic imports follow the same alphabetical ordering when multiple exist:
```typescript
// Alphabetical order by module path
const moduleA = await import('./moduleA');
const moduleB = await import('./moduleB');
const utils = await import('./utils');
```Related Skills
python-style
Python coding style enforcement (PEP standards, type hints, docstrings, modern patterns). Auto-loads when writing or reviewing Python code.
typescript-style
TypeScript coding style enforcement (ESLint, type safety, React patterns). Auto-loads when writing or reviewing TypeScript/JavaScript code.
typescript-code-review
TypeScript and React code review guidelines (type safety, React patterns, performance). Auto-loads when reviewing TypeScript/React code.
zod
Zod schema validation patterns and type inference. Auto-loads when validating schemas, parsing data, validating forms, checking types at runtime, or using z.object/z.string/z.infer in TypeScript.
setup-mcp-auth
Configure authentication for an existing FastMCP server
fastmcp
FastMCP TypeScript framework patterns for MCP servers. Auto-loads when building MCP servers, creating tools/resources/prompts, implementing authentication, configuring transports, or working with FastMCP in TypeScript.
add-mcp-tool
Add a new tool to an existing FastMCP server with guided configuration
add-mcp-resource
Add a new resource or resource template to an existing FastMCP server
plan-with-team
Validate plan file ownership
privacy-compliance
GDPR, CCPA, and privacy compliance guidance for data protection. Use when handling personal data, implementing consent management, or ensuring regulatory compliance across jurisdictions.
oauth
OAuth 2.0 and OpenID Connect implementation patterns. Use when implementing authentication, authorization flows, or integrating with OAuth providers like Google, GitHub, or custom identity providers.
mcp-security
Use when securing MCP servers, preventing prompt injection, implementing authorization, validating user input, or building secure multi-agent pipelines. Provides 5-layer defense architecture patterns.