Coding Standards Skill
概要
このSkillは、プロジェクトのコーディング規約を提供します。一貫性のある高品質なコードを維持し、チーム全体の開発効率を向上させることを目的とします。
基本原則
1. 可読性の重視
- •コードは書くよりも読まれることが多い
- •明確で理解しやすいコードを書く
- •適切な命名と構造化を心がける
2. 一貫性の保持
- •プロジェクト全体で統一されたスタイルを維持
- •既存のコードパターンに従う
- •ツールによる自動化を活用
3. 保守性の向上
- •変更に強いコード設計
- •適切な分離と抽象化
- •テスタブルなコード構造
詳細ドキュメント
各カテゴリの詳細な規約は以下を参照してください:
- •TypeScript規約 - 型安全性、型定義、禁止事項
- •命名規則 - 変数・関数・型の命名規則
- •禁止事項 - 絶対に使用禁止のパターン
クイックリファレンス
必須チェック項目
- • any型を使用していない(最重要)
- • 適切な型定義がされている
- • 命名規約に従っている
- • early return パターンを使用している
- • エラーハンドリングが適切に実装されている
- • 禁止事項に該当するコードがない
インポート順序
typescript
// 1. Node.js標準ライブラリ
import { readFile } from 'fs/promises';
// 2. 外部ライブラリ
import React from 'react';
import { NextRequest } from 'next/server';
// 3. 内部ライブラリ(@/から始まる)
import { Button } from '@/components/ui/button';
import { auth } from '@/lib/auth';
// 4. 相対インポート
import './styles.css';
import { localUtil } from '../utils';
スタイリング(Tailwind CSS)
typescript
// ✅ Tailwind CSSユーティリティクラスの使用
export function Card({ children }: CardProps) {
return (
<div className="rounded-lg bg-white p-6 shadow-md hover:shadow-lg transition-shadow">
{children}
</div>
);
}
// ✅ cva によるバリアント管理
import { cva } from "class-variance-authority";
const buttonVariants = cva(
"inline-flex items-center justify-center rounded-md font-medium transition-colors",
{
variants: {
variant: {
primary: "bg-primary text-primary-foreground hover:bg-primary/90",
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
},
size: {
sm: "h-8 px-3 text-sm",
md: "h-10 px-4 text-base",
lg: "h-12 px-6 text-lg",
},
},
defaultVariants: {
variant: "primary",
size: "md",
},
}
);
ツール設定
必須ツール
- •Biome: linting と formatting
- •TypeScript: 型チェック
- •Husky: Git hooks
- •lint-staged: ステージングファイルのチェック
VS Code 推奨設定
json
{
"editor.codeActionsOnSave": {
"source.organizeImports": true,
"source.fixAll": true
},
"editor.formatOnSave": true,
"typescript.preferences.noSemicolons": false,
"typescript.preferences.quoteStyle": "double"
}
関連Skill・ドキュメント
- •component-design - コンポーネント設計ガイドライン
- •
docs/einja/steering/development/testing-strategy.md- テスト戦略 - •
docs/einja/steering/development/review-guidelines.md- コードレビューガイドライン - •
docs/einja/steering/commit-rules.md- コミットルール