mcpField
C
clean-code-ts-react

clean-code-ts-react

github.com/pproenca開発218218 回インストール11 週間前に更新
リポジトリ

clean-code-ts-react について

clean-code-ts-reactは、TypeScript 5.xとReact 19の開発やレビュー向けのコード品質スキルです。コードを書く、レビューする、リファクタリングするチームを対象に、命名や関数設計など61のルールを示し、原則が衝突する場合の判断も扱います。

主な機能

  1. 0111カテゴリ、全61ルール
  2. 02TypeScript 5.xとReact 19の例
  3. 03各ルールを適用しない具体例
  4. 04命名、関数、型、エラー処理の指針
  5. 05原則が衝突する場合の判断基準

活用シーン

  1. 01TypeScriptやReactのコードレビュー
  2. 02可読性向上を目的としたリファクタリング
  3. 03関数、フック、コンポーネントAPIの設計
  4. 04抽象化、再利用、重複の判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pproenca/dot-skills --skill clean-code-ts-react

インストール後、Claude Code で/clean-code-ts-reactを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
bound-isolate-framework.md
bound-learning-tests.md
bound-type-assertions-at-edges.md
bound-wrap-third-party-hooks.md
comp-avoid-hoc-stacks.md
comp-children-over-props.md
comp-context-only-when-needed.md
comp-render-props-vs-hooks.md
comp-separate-construction-from-use.md
comp-small-components.md
data-branded-types.md
data-demeter-prop-drilling.md
data-discriminated-unions-over-flags.md
data-dto-vs-domain.md
data-readonly-by-default.md
data-structural-typing-pitfalls.md
doc-avoid-redundant-comments.md
doc-delete-commented-out-code.md
doc-jsdoc-public-api.md
doc-satisfies-narrows-with-check.md
doc-types-over-comments.md
emerge-four-rules.md
emerge-premature-abstraction.md
emerge-reveal-intent.md
emerge-yagni-types.md
err-early-return.md

詳細

Robert C. Martin(Uncle Bob)による TypeScript 5.x + React 19 のベストプラクティス

Robert C. Martin の Clean Code(2008)のクラフトマンシップの原則を、現代の TypeScript と React 向けに再表現したものです。11 カテゴリーにわたる 61 のルールを、コード変更のライフサイクル全体における認知コストの高さに応じて優先順位付けしています。例では TS 5.x と React 19 の慣用的な書き方を使用していますが、ルールが重視するのは特定の API ではなく、時代を超えた原則です。

このスキルの特徴

一般的なクリーンコードのコピーと異なる点は、次の 3 つです。

  1. 現代的な慣用表現を手段として使います。 例では TS 5.x(satisfies、ブランド型、判別可能なユニオン、const 型パラメーター)と React 19(関数コンポーネント、フック、use()、該当する場合は Server Components)を使用します。ただし、ルールの主眼は常に原則であり、構文ではありません。
  2. 「適用すべきでない場合」を重視します。 すべてのルールに、原則を柔軟に適用すべき具体的な状況を 2~3 件示しています。一般的な但し書きではなく、実際に起こりうる状況です。ループカウンターには i を使ってもかまいません。一度しか使わないコードを DRY にする必要はありません。一部の HOC は避けられません。
  3. 原則の衝突を扱うメタカテゴリーがあります。 カテゴリー 11 では、よくある緊張関係を明示します。DRY と単一責任、小さな関数と深いモジュール(Ousterhout)、型の厳密さと使いやすい API、仕様としてのテストとドキュメントなどです。どの原則を柔軟に扱うべきか判断できることが、シニアとしての証です。

適用する場面

次のようなときに、これらのガイドラインを参照してください。

  • 新しい TypeScript または React のコードを書き、クラフトマンシップの観点からフィードバックを得たいとき
  • 明瞭さ、命名、抽象化についてプルリクエストをレビューするとき
  • 既存コードを読みやすさや保守性のためにリファクタリングするとき
  • 関数、フック、コンポーネントの API を設計するとき
  • 切り出し、抽象化、重複のどれを選ぶか判断するとき
  • クリーンコードの 2 つのルールの緊張関係を解消するとき(カテゴリー 11 を参照)

このスキルではなく、次を使ってください。

  • react:React 19 の API パターン(並行レンダリング、Server Components、ref-as-prop、useActionState、プロバイダーとしての<Context>)
  • typescript:コンパイラーのパフォーマンス、tsconfig の調整、型システムのパフォーマンス
  • refactor:機械的なリファクタリングのワークフロー
  • tdd:TDD のワークフロー自体

優先度別のルールカテゴリー

順序は、変更のライフサイクル全体(読む → 理解する → 変更する → 検証する → リリースする → 保守する)における認知コストを表します。初期段階での問題は後続段階に波及します。悪い名前は、読むたびに理解を妨げます。

優先度カテゴリー影響度プレフィックスルール
1意味が明確な名前CRITICALname-8
2関数、コンポーネント、フックCRITICALfunc-8
3自己文書化(型とコメント)HIGHdoc-5
4フォーマット(Prettier にとどまらない)HIGHfmt-4
5エラー処理HIGHerr-7
6データの形状と不変性MEDIUM-HIGHdata-6
7境界MEDIUM-HIGHbound-4
8継承より合成MEDIUM-HIGHcomp-6
9テストMEDIUMtest-5
10創発とシンプルな設計MEDIUMemerge-4
11メタ:原則が衝突する場合MEDIUMmeta-4

合計:61 のルール。

クイックリファレンス

1. 意味が明確な名前(CRITICAL)
2. 関数、コンポーネント、フック(CRITICAL)
3. 自己文書化:型とコメント(HIGH)
4. Prettierを超えるフォーマット(HIGH)
5. エラー処理(HIGH)
6. データ形状と不変性(MEDIUM-HIGH)
7. 境界(MEDIUM-HIGH)
8. 継承より合成(中〜高)
9. テスト(中)
10. 創発とシンプルな設計(中)
11. メタ:原則が対立するとき(中)

このカテゴリが本領を発揮します — あるクリーンコードの原則を別の原則より優先する場面について、明確な指針を示します。

  • meta-dry-vs-srp — 概念が分かれていく場合は DRY を曲げます
  • meta-small-vs-deep — 間接化が理解を妨げる場合は、小さな関数より深いモジュールを優先します
  • meta-types-vs-ergonomics — 安定した境界では型安全性より使いやすさを優先します
  • meta-tests-as-spec-vs-doc — ファイルごとに、仕様としてのテストとドキュメントとしてのテストを選びます

使い方

「この名前付けでよいか?」「これを切り出すべきか?」といった個別の質問では、上のクイックリファレンスから該当するルールファイルを直接参照してください。

コードレビューやリファクタリングでは、優先度順にカテゴリを確認してください。まず名前と関数の形(最も広く影響します)、次にエラーとデータの形、その後に合成とテストを確認します。ファイルごとに確認するより、カテゴリごとにまとめて確認するほうが効率的です。

2 つの原則が対立しているように見える場合は、該当するメタルール(カテゴリ 11)を読んでください。優先する原則を選び、その判断を記録します。

リファレンスファイル

ファイル説明
references/_sections.mdカテゴリの定義と順序
assets/templates/_template.md新しいルールを追加するためのテンプレート
metadata.jsonバージョンとリファレンス情報

関連スキル

  • .experimental/clean-code — 言語に依存しない元のクリーンコード(Java の例)。このスキルは TS+React 版です。
  • .curated/react — React 19 固有のパターン(Server Components、並行レンダリング、ref-as-prop)。
  • .curated/typescript — TS コンパイラのパフォーマンスと tsconfig の調整。
  • .curated/refactor — 機械的なリファクタリングのワークフロー。
  • .curated/tdd — TDD のワークフローそのもの。

コメント