code-generation-template について
スキャフォールディングや反復的なコードを自動生成する開発者向けのスキルです。テンプレート、AST技術、スキーマに基づく生成、CLIジェネレーターに加え、検証と保守性の指針を扱います。
主な機能
- 01テンプレートによるコード生成
- 02ASTベースの生成手法
- 03プロジェクトとコンポーネントのスキャフォールディング
- 04APIクライアントとモデルの生成
- 05カスタムCLIジェネレーターの指針
- 06検証と保守の実践
活用シーン
- 01新規プロジェクトやコンポーネントの雛形作成
- 02パターンに沿ったCRUDコード生成
- 03OpenAPI仕様からのAPIクライアント作成
- 04JSON Schemaからの型生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill code-generation-templateインストール後、Claude Code で/code-generation-templateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ast-based-code-generation.mddatabase-model-generation.mdgraphql-code-generation.mdopenapi-client-generation.mdplopjs-generator.mdproject-scaffolding.mdtemplate-engines.mdscripts/validate-api.shtemplates/api-scaffold.yaml詳細
コード生成とテンプレート
目次
概要
生産性と一貫性を高めるための、テンプレートエンジン、AST 操作、コードのスキャフォールディング、定型コードの自動生成など、コード生成の手法を包括的に解説します。
使用する場面
- 新しいプロジェクトやコンポーネントのスキャフォールディング
- 繰り返し使う定型コードの生成
- CRUD 操作の自動生成
- OpenAPI 仕様からの API クライアント生成
- テンプレートを使ったコードの構築
- スキーマからのデータベースモデル作成
- JSON Schema からの TypeScript 型の生成
- カスタム CLI ジェネレーターの構築
クイックスタート
最小限の実行可能な例:
// templates/component.hbs
import React from 'react';
export interface {{pascalCase name}}Props {
{{#each props}}
{{this.name}}{{#if this.optional}}?{{/if}}: {{this.type}};
{{/each}}
}
export const {{pascalCase name}}: React.FC<{{pascalCase name}}Props> = ({
{{#each props}}{{this.name}},{{/each}}
}) => {
return (
<div className="{{kebabCase name}}">
{/* Component implementation */}
</div>
);
};
リファレンスガイド
詳細な実装については、references/ ディレクトリを参照してください:
| ガイド | 内容 |
|---|---|
| テンプレートエンジン | テンプレートエンジン |
| AST ベースのコード生成 | AST ベースのコード生成 |
| プロジェクトのスキャフォールディング | プロジェクトのスキャフォールディング |
| OpenAPI クライアントの生成 | OpenAPI クライアントの生成 |
| データベースモデルの生成 | データベースモデルの生成 |
| GraphQL コード生成 | GraphQL コード生成 |
| Plop.js ジェネレーター | Plop.js ジェネレーター |
ベストプラクティス
✅ 推奨事項
- 繰り返し使うコードパターンにはテンプレートを使用する
- スキーマから TypeScript 型を生成する
- 生成コードにテストを含める
- テンプレートでプロジェクトの規約に従う
- 生成コードの説明コメントを追加する
- テンプレートをバージョン管理する
- テンプレートを設定可能にする
- コードとともにドキュメントも生成する
- 生成前に入力を検証する
- 一貫した命名規則を使用する
- テンプレートはシンプルで保守しやすい状態に保つ
- 生成を簡単に行える CLI を用意する
❌ 禁止事項
- 過剰に生成する(不要な複雑さを避ける)
- 保守が難しいコードを生成する
- 生成コードの検証を忘れる
- テンプレートに値をハードコードする
- ドキュメントなしでコードを生成する
- 一度限りの用途にジェネレーターを作成する
- テンプレートにビジネスロジックを混在させる
- フォーマットせずにコードを生成する
- ジェネレーターのエラー処理を省略する
- 複雑すぎるテンプレートを作成する
コメント
Markdown 対応