Skip to content

refactor: ディレクトリ構造を整理し命名規則をルール化#2823

Merged
devmgn merged 1 commit into
mainfrom
refactor/directory-structure
May 25, 2026
Merged

refactor: ディレクトリ構造を整理し命名規則をルール化#2823
devmgn merged 1 commit into
mainfrom
refactor/directory-structure

Conversation

@devmgn
Copy link
Copy Markdown
Owner

@devmgn devmgn commented May 25, 2026

Summary

  • src/ 配下のディレクトリ構造を整理し、命名規則をルール化
  • .claude/rules/directory-structure.md を新設して決定事項を明文化

主な変更

廃止

  • src/features/ src/schemas/ src/config/ src/@types/ を廃止
  • envsrc/env.ts ルート直置きに
  • .d.tssrc/types/ に統合

utils/lib/ の振り分け(副作用の有無)

  • utils/: 純粋関数(debounce, is/, runtime
  • lib/: 副作用/外部依存あり(proxy, getQueryClient, WebVitalsReporter, styles

グルーピング再編

  • src/hooks/storage/useLocalStorage useSessionStorage useWebStorage utils/webStorageStore を集約
  • src/utils/is/isFunction isKeyOf isValueOf を集約
  • src/components/form/Field Input Label を集約
  • src/lib/queryClient/src/lib/getQueryClient/{,config/} に再編(entrypoint 名 = export 関数名)

ローカル utils/ 配下も 1機能1ディレクトリ徹底

  • LoadingOverlay/utils/loadingStore/{loadingStore.ts,index.ts} 構造に
  • useIsComposing/utils/compositionStore/ も同様

その他

  • 未使用の createCustomEvent を削除

ディレクトリ命名規則(新設)

役割 単一語 複合語
コンポーネント単体 PascalCase PascalCase
機能 entrypoint 小文字 キャメルケース
グルーピング 小文字 ケバブケース

判定: index.ts から何かを公開 → entrypoint、束ねるだけ → グルーピング(barrel なし)

Test plan

  • pnpm test:unit 422 件パス
  • pnpm check (lint + format + knip) パス
  • 型エラーなし
  • レビュアーが構造を確認し、ルールに準拠していること

🤖 Generated with Claude Code

- 廃止: src/{features,schemas,config,@types} → 役割に応じて統合
- src/utils と src/lib を副作用の有無で振り分け
- src/hooks/storage/ で localStorage/sessionStorage 系を集約
- src/utils/is/ で type guard 系を集約
- src/components/form/ で Field/Input/Label を集約
- src/lib/queryClient → src/lib/getQueryClient/{,config/} に再編
- ローカル utils はグルーピング扱い、配下を 1機能1ディレクトリに
- src/components/LoadingOverlay/utils/loadingStore/, useIsComposing/utils/compositionStore/ も同様に整理
- createCustomEvent を削除 (未使用)
- .claude/rules/directory-structure.md を新設し決定事項のみ記載

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@devmgn devmgn enabled auto-merge (squash) May 25, 2026 11:19
@devmgn devmgn merged commit 525b041 into main May 25, 2026
3 checks passed
@devmgn devmgn deleted the refactor/directory-structure branch May 25, 2026 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant