← スキル一覧に戻る

code-quality
by allenlin90
⭐ 1🍴 0📅 2026年1月24日
SKILL.md
name: code-quality description: Provides general code quality and best practices guidance applicable across languages and frameworks. Focuses on linting, testing, and type safety.
Code Quality Skill
Provides general code quality and best practices guidance applicable across languages and frameworks. Focuses on Linting, Testing, and Type Safety.
For architecture-specific patterns (N+1 queries, Soft Deletes, etc.), refer to:
Pre-Submission Checklist
Before marking any task as complete:
- Ensure
pnpm lintpasses (no ESLint rule disables). - Ensure
pnpm testpasses (new features have tests). - Ensure
pnpm buildsucceeds (no TypeScript errors). - Avoid
any/unknowntypes (maintain strict type safety). - Remove
console.logstatements (use a dedicated logger). - Ensure error messages are clear and actionable.
Linting
We use ESLint with strict rules.
- Command:
pnpm lint(orpnpm lint -- --fix) - Rule: NEVER disable rules with
eslint-disable. Fix the underlying issue.
Common Fixes:
@typescript-eslint/no-explicit-any: Define a proper interface/DTO.no-unused-vars: Remove the variable or prefix with_.no-console: Inject aLoggerservice.
Testing
All new features require tests.
- Unit Tests: Test individual classes (Services, Utils) with mocked dependencies.
- Integration Tests: Test interactions (Repositories) with real database/services.
Example (Unit Test):
describe('UserService', () => {
it('should return user when found', async () => {
// 1. Arrange (Mock dependencies)
const mockRepo = { findByUid: jest.fn().mockResolvedValue(user) };
const service = new UserService(mockRepo as any);
// 2. Act
const result = await service.getUser('u_1');
// 3. Assert
expect(result).toEqual(user);
expect(mockRepo.findByUid).toHaveBeenCalledWith('u_1');
});
});
TypeScript Type Safety
Strict mode is enforced.
-
❌ Avoid
any/unknown:// BAD const data: any = req.body; // GOOD const data: CreateUserDto = req.body; -
✅ Use DTOs and Interfaces: Always define shapes for inputs and outputs.
-
✅ Trust the Compiler: If it compiles, it should likely run (if types are accurate).
Common Anti-Patterns (General)
- Ignoring Lint Errors: Address them immediately.
- Logic in Controllers: Controllers should only handle HTTP req/res. Move logic to Services.
- Hardcoded Strings/Magic Numbers: Use constants or enums.
- Complex Conditionals: Break down complex
if/elseblocks into helper methods. - Catch-All Error Handling: Avoid just using
console.error. Handle specific errors or let global filters handle them.
Related Skills
- database-patterns/SKILL.md: N+1 queries, Soft Deletes, Bulk Operations.
- service-pattern/SKILL.md: Business logic errors, Transactions.
- repository-pattern/SKILL.md: Data access rules.
- backend-controller-pattern-nestjs/SKILL.md: NestJS-specific controller rules.
- frontend-code-quality/SKILL.md: React/Frontend specific patterns.
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です