Implementing Features
プロジェクトの開発標準に従い、TDDで機能実装・バグ修正・リファクタリングを行う。
CLAUDE.md の方針を厳守すること。プロジェクト固有のコードパターンは docs/development-patterns.md を参照。
基本姿勢
- •実務でそのまま使えるコードを書く(擬似コード禁止、TODOで逃げない)
- •仕様が曖昧な場合は実装前に質問する(推測で進めない)
- •設計を勝手に変えない、過剰な抽象化をしない
- •仕様書にない機能を追加しない
- •ユーザーデータの暗黙的な削除・上書きをしない
実装ワークフロー(TDD)
- •仕様確認 — 曖昧な点があれば選択肢を示して質問
- •テスト作成 — Vitest + Testing Library で正常系・異常系・境界値を書く
- •最小実装 — テストが通るコードを書く
- •リファクタリング — テストが通ったまま整理
- •検証 —
npm run test:run && npm run check && npm run build && npx depcruise src --config - •ドキュメント更新 — 下記「ドキュメント同期」に従い
docs/を更新
出力フォーマット
実装時は以下の順で出力:
- •実装方針(簡潔に)
- •テストコード
- •本体コード
アーキテクチャ準拠
- •Feature-Sliced Design:
src/features/{feature}/配下に components, pages, utils - •状態管理: Zustand 5 + persist middleware(セレクタの注意点は docs/development-patterns.md 参照)
- •バリデーション: Zod スキーマで型安全に(
src/shared/types/) - •UI: Tailwind CSS 4 + shadcn/ui、ダークモード必須
- •パスエイリアス:
@/→src/
データモデル変更時
- •Zodスキーマを先に定義
- •既存
DatabaseSchemaとの後方互換を維持(optional追加) - •localStorage永続化層(
jsonStorage)への影響を確認
ドキュメント同期
実装変更後、影響を受ける docs/ ファイルを必ず更新する。
ドキュメントの正確性は実装と同等の品質基準で扱う。
更新トリガーと対象ファイル
| 変更内容 | 更新対象 |
|---|---|
| ルート追加・変更・削除 | docs/project.md |
| Zustandストア追加・変更・削除 | docs/project.md |
| npmスクリプト追加・変更 | docs/project.md |
| 依存パッケージ追加・バージョン変更 | docs/project.md |
| feature追加・削除・リネーム | docs/architecture.md |
| コンポーネント追加・削除 | docs/architecture.md |
| テストファイル追加・削除 | docs/architecture.md |
| shared/infrastructure変更 | docs/architecture.md |
| コードパターン・落とし穴の発見/変更 | docs/development-patterns.md |
| Zodスキーマのフィールド追加・変更 | docs/data-model.md |
| バリデーションルール変更 | docs/data-model.md |
| フォームスキーマ追加・変更 | docs/data-model.md |
更新手順
- •変更した実装コードを読み、影響を受ける
docs/ファイルを特定する - •対象ファイルの該当箇所を実装に合わせて更新する
- •更新内容を品質レポートの変更影響範囲に含める
テストポリシー
- •テストは「仕様を説明するもの」
- •重要なロジックには必ずテストケースを用意
- •カバレッジ80%以上を目標
- •
describe/itの説明文は日本語で振る舞いを明記 - •ユニットテストカバレッジのレポートをファイル出力し提示
依存方向の検証
実装完了時に npx depcruise src --config を実行し、以下のルール違反がないことを確認する:
- •
features/X→features/Yの直接依存がないこと - •
shared→featuresの依存がないこと - •
infrastructure→featuresの依存がないこと - •
stores→featuresの依存がないこと - •循環依存がないこと
Git操作
- •
--no-verifyは使用禁止(pre-commit / pre-pushフックを迂回しない) - •フック失敗時はエラーの原因を修正する
- •
--forceは原則禁止
禁止事項
- •Zustandセレクタ内での
.filter()/.map()/.sort()(無限ループの原因) - •仕様書にない機能の追加
- •ユーザーデータの暗黙的な削除・上書き
- •
--no-verifyによるフック迂回