mcpField
W
writing-clean-ts

writing-clean-ts

github.com/beecode-rs開発046 回インストール2 週間前に更新
リポジトリ

writing-clean-ts について

writing-clean-tsは、TypeScriptの作成、リファクタリング、レビューに使う開発者向けスキルです。レイヤー構成とタスクに応じた参照ルールを適用し、プロジェクトのlintツールでコードを検査します。

主な機能

  1. 01ControllerからEntityまでのレイヤー構成
  2. 02フレームワークとタスク別の参照ルール
  3. 03一般的なファイル用テンプレート
  4. 04ES modulesと#srcエイリアスの先行設定
  5. 05lint-fixとlintによる検査

活用シーン

  1. 01既存の構成に沿ったTypeScript機能の追加
  2. 02規約に基づくTypeScriptのリファクタリングやレビュー
  3. 03プロジェクトのlintとES modulesの設定
  4. 04フレームワーク規則に沿ったサービスやUIコンポーネントの作成

インストール

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

$npx skills add https://github.com/beecode-rs/claude-skills --skill writing-clean-ts

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

同梱ファイル

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

LICENSE.txt
references/
core-rules.md
linting.md
references/architecture/
app-boot-layer.md
class-vs-object.md
component-layer.md
constant-config-pattern.md
controller-layer.md
dal-layer.md
entity-layer.md
file-organization-pattern.md
model-vs-entity.md
null-undefined-pattern.md
repository-layer.md
rest-api-url-conventions.md
service-layer.md
ui-component-layer.md
use-case-layer.md
references/commands/
clean-arch.md
clean-style.md
cleanup.md
references/frameworks/
electron.md
expo.md
express.md
react.md
rmq.md
rxjs.md
typeorm.md
zod.md
references/style/
code-style.md

詳細

TypeScript エキスパート

TypeScript を作成、リファクタリング、レビューし、単一のレイヤーアーキテクチャ(Controller → Use Case → Component → Service → Repository → DAL → Entity)と一貫した命名、スタイル、Lint の規約に従わせ、新しいコードが既存のスタイルに合致し、シームレスに統合されるようにします。

サービス、リポジトリ、DAL、エンティティ、モデル、列挙型、コントローラー、ハンドラー、ユースケース、アプリの起動コード、UI コンポーネントを作成または移動するとき、これらの規約に沿って TypeScript をリファクタリングまたはレビューするとき、または #src エイリアスを使った Lint 設定や ES モジュールを構成するときに使用してください。

基本ワークフロー

  1. スタックを検出する:対象パッケージの package.json を読み込みます(モノレポの場合はルートではなく、作業対象のパッケージ)。以下のフレームワーク表にあるファイルも確認します。
  2. リファレンスを読み込む:まず references/core-rules.md を読み、その後、スタックとタスクに該当する行のファイルだけを読みます。読み込むファイルは、最初から最後まで通して読みます。範囲を指定して読み込まないでください。
  3. 機能コードを書く前にプロジェクトの設定を確認する:#src エイリアスを使った ES モジュールと、設定ファイルを含む lint / lint-fix スクリプトを確認します。いずれかが不足している場合は、まず設定します(references/linting.md)。小規模なプロジェクト、新規プロジェクト、既存プロジェクトであっても例外はありません。
  4. レイヤーの順序に沿って構築する:バックエンドは App Boot → Controller → Entity → DAL → Repository → Component/Service/Use Case、フロントエンドは Controller → UI Component の順に進めます。新しいファイルはすべて、スターターテンプレートをもとに作成します。
  5. ツールで Lint を実行する:lint-fix を実行してから、lint を実行します。スクリプトで確認できる内容は、その出力だけで判断します。目視や AI エージェント/レビュアーによるコードレビューで判断しないでください。手作業で修正するのは、ツールが報告した問題のうち、ツールでは修正できないものだけです。ルールを無効にして通過させないでください。
  6. テストは contract-testing-ts スキルの対象です。

必要なものだけを読み込む

リファレンスファイルを最初にすべて読み込まないでください。必ず最初に references/core-rules.md を読み、その後は条件に該当するファイルだけを読みます。それ以外のファイルは読まないでください。

フレームワーク

プロジェクトは複数の行に該当する場合があります(たとえば Express + TypeORM + Zod)。該当する行をすべて読み、それ以外は読まないでください。

次の場合に検出読み込むファイル
依存関係に expo または expo-router がある、"main": "expo-router/entry" がある、または app.json / app.config.ts に expo キーがある場合。コードの作成、移動、レビューを行う前に読みますreferences/frameworks/expo.md
依存関係に react がある場合(React Native、Expo、Electron のレンダラーを含む)references/frameworks/react.md
依存関係に express がある場合references/frameworks/express.md
依存関係に typeorm がある場合references/frameworks/typeorm.md
依存関係に amqplib がある場合、または src/controller/rmq/ が存在する場合references/frameworks/rmq.md
イベントバスに使用する rxjs が依存関係にある場合、または src/controller/rxjs-bus/ が存在する場合references/frameworks/rxjs.md
依存関係に electron がある場合、または src/main/ と src/renderer/ が存在する場合references/frameworks/electron.md
依存関係に zod がある場合、またはタスクでコントローラーハンドラー、スキーマ、ペイロードのバリデーションを作成またはレビューする場合references/frameworks/zod.md
トピック
タスクの内容...参照先
あらゆるコードタスク(必ず最初に読む)references/core-rules.md
ファイル、エクスポート、列挙型、関数、変数、ブール値の作成、命名、名前変更references/style/naming-convention.md
関数本体(条件演算子、ループ、let、switch、アロー関数、ミューテーション、デフォルト値)の記述や編集references/style/code-style.md
エラー処理、網羅的な switch、または関数の名前でその動作を網羅する必要がある場合references/style/function-guidelines.md
約30行を超える関数、または関数やファイルの分割references/style/function-size.md
関数シグネチャ(パラメーター、デフォルト値、コールバック)の記述や変更references/style/object-params-pattern.md
日付/時刻フィールド(*At フィールド、Date 値、タイムスタンプ列)references/style/timestamp-handling.md
ファイルやフォルダーの作成、コードの移動、コードを配置するレイヤーの判断references/architecture/file-organization-pattern.md
モジュールにクラス、プレーンオブジェクト、シングルトンのどれを使うかの選択references/architecture/class-vs-object.md
定数、環境変数/設定値、ランタイム状態、プラットフォームチェックreferences/architecture/constant-config-pattern.md
モデル型、またはエンティティとモデル間の変換references/architecture/model-vs-entity.md
レイヤー間の欠損値(null、undefined、オプションフィールド)references/architecture/null-undefined-pattern.md
起動またはシャットダウンのコード(src/app-boot/、ライフサイクル)references/architecture/app-boot-layer.md
コントローラー(src/controller/)references/architecture/controller-layer.md
src/business/component/ 内のユニット(セレクター+ストラテジー、パブリック API+プライベートヘルパー)references/architecture/component-layer.md
src/business/service/ 内のサービスreferences/architecture/service-layer.md
src/business/use-case/ 内のユースケースreferences/architecture/use-case-layer.md
src/business/repo/ 内のリポジトリーreferences/architecture/repository-layer.md
src/dal/ 内の DAL(データベース、ファイル、メモリー、API ストレージ)references/architecture/dal-layer.md
src/dal/*/entity/ 内のエンティティreferences/architecture/entity-layer.md
src/ui-component/ 内の UI コンポーネントreferences/architecture/ui-component-layer.md
REST エンドポイントの URL の設計またはレビューreferences/architecture/rest-api-url-conventions.md
lint の設定(新規プロジェクト、または lint/lint-fix スクリプトがないプロジェクト)、ESLint/Prettier/jsonsort 設定の編集、lint スクリプトでの検証内容の確認、lint ルールの理解references/linting.md
コマンド
ユーザーの依頼...参照先
「このコードを整理して」「このファイルをレビューして」「コード品質を確認して」「コード構成を検証して」references/commands/cleanup.md に加え、レビュー対象のコードに該当するフレームワークとトピックの行
「アーキテクチャをレビューして」「clean-arch」「構成を確認して」「適切なレイヤーにあるか確認して」references/commands/clean-arch.md に加え、references/architecture/ 内の file-organization-pattern.md、class-vs-object.md、model-vs-entity.md、constant-config-pattern.md、null-undefined-pattern.md、rest-api-url-conventions.md、レビュー対象のレイヤーのファイル、コントローラーが対象に含まれる場合は references/frameworks/express.md と references/frameworks/zod.md、Expo プロジェクトの場合は references/frameworks/expo.md。references/style/ は読み込まないでください
「スタイルをレビューして」「clean-style」「読みやすさを確認して」、またはスタイルのみのフィードバックreferences/commands/clean-style.md に加え、references/style/ 内のすべてのファイル、Expo プロジェクトの場合は references/frameworks/expo.md。references/architecture/ は読み込まないでください
スターターテンプレート

コピー&ペーストして使えるひな形です。作成するファイルに対応するものだけを開いてください。

作成するもの...テンプレート
独立したメソッドを持つサービス(シングルトン)templates/service-template.ts
相互依存するメソッドを持つサービス(クラス)templates/service-class-template.ts
パーサーサービス(正規表現、日付など)templates/parser-service-template.ts
リポジトリークラスtemplates/repository-template.ts
TypeORM DAL クラスtemplates/dal-template.ts
TypeORM エンティティtemplates/entity-template.ts
サービスを統括するユースケースtemplates/use-case-template.ts
Express の GET リストエンドポイントtemplates/express-handler-template.ts
Express の POST 作成エンドポイントtemplates/express-handler-post-template.ts
React Router コントローラー(Expo 以外)templates/react-controller-template.tsx
React UI コンポーネントtemplates/react-component-template.tsx
モデルの型定義templates/model-template.ts
列挙型(キーと値が異なる場合は -mapper-enum)templates/enum-template.ts
コンポーネントまたはサービスのサブフォルダー内にあるストラテジー/プラグイン可能なクラスtemplates/subfolder-component-template.ts

ライセンス

このスキルは、LICENSE.txt に記載された条件に基づいてライセンスされています。

コメント