Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 09:08:22 +08:00
commit a25d9dfcd0
28 changed files with 3680 additions and 0 deletions

202
commands/misc/lint.md Normal file
View File

@@ -0,0 +1,202 @@
---
description: Run linting and fix code quality issues
model: claude-sonnet-4-5
---
Run linting and fix code quality issues in the codebase.
## Target
$ARGUMENTS
## Lint Strategy for Solo Developers
### 1. **Run Linting Commands**
```bash
# ESLint (JavaScript/TypeScript)
npm run lint
npx eslint . --fix
# TypeScript Compiler
npx tsc --noEmit
# Prettier (formatting)
npx prettier --write .
# All together
npm run lint && npx tsc --noEmit && npx prettier --write .
```
### 2. **Common ESLint Issues**
**TypeScript Errors**
- Missing type annotations
- `any` types used
- Unused variables
- Missing return types
**React/Next.js Issues**
- Missing keys in lists
- Unsafe useEffect dependencies
- Unescaped entities in JSX
- Missing alt text on images
**Code Quality**
- Unused imports
- Console.log statements
- Debugger statements
- TODO comments
**Best Practices**
- No var, use const/let
- Prefer const over let
- No nested ternaries
- Consistent return statements
### 3. **Auto-Fix What You Can**
**Safe Auto-Fixes**
```bash
# Fix formatting
prettier --write .
# Fix ESLint auto-fixable rules
eslint --fix .
# Fix import order
eslint --fix --rule 'import/order: error' .
```
**Manual Fixes Needed**
- Type annotations
- Logic errors
- Missing error handling
- Accessibility issues
### 4. **Lint Configuration**
**ESLint Config** (`.eslintrc.json`)
```json
{
"extends": [
"next/core-web-vitals",
"plugin:@typescript-eslint/recommended"
],
"rules": {
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unused-vars": "error",
"no-console": "warn"
}
}
```
**Prettier Config** (`.prettierrc`)
```json
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5"
}
```
### 5. **Priority Fixes**
**High Priority** (fix immediately)
- Type errors blocking build
- Security vulnerabilities
- Runtime errors
- Broken accessibility
**Medium Priority** (fix before commit)
- Missing type annotations
- Unused variables
- Code style violations
- TODO comments
**Low Priority** (fix when convenient)
- Formatting inconsistencies
- Comment improvements
- Minor refactoring opportunities
### 6. **Pre-Commit Hooks** (Recommended)
**Install Husky + lint-staged**
```bash
npm install -D husky lint-staged
npx husky init
```
**Configure** (`.husky/pre-commit`)
```bash
npx lint-staged
```
**lint-staged config** (`package.json`)
```json
{
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"prettier --write"
]
}
}
```
### 7. **VSCode Integration**
**Settings** (`.vscode/settings.json`)
```json
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"typescript.tsdk": "node_modules/typescript/lib"
}
```
## What to Generate
1. **Lint Report** - All issues found
2. **Auto-Fix Results** - What was automatically fixed
3. **Manual Fix Suggestions** - Issues requiring manual intervention
4. **Priority List** - Ordered by severity
5. **Configuration Recommendations** - Improve lint setup
## Common Fixes
**Remove Unused Imports**
```typescript
// Before
import { A, B, C } from 'lib'
// After
import { A, C } from 'lib' // B was unused
```
**Add Type Annotations**
```typescript
// Before
function process(data) {
return data.map(x => x.value)
}
// After
function process(data: DataItem[]): number[] {
return data.map(x => x.value)
}
```
**Fix Missing Keys**
```typescript
// Before
{items.map(item => <div>{item.name}</div>)}
// After
{items.map(item => <div key={item.id}>{item.name}</div>)}
```
Focus on fixes that improve code quality and prevent bugs. Run linting before every commit.