typescript-docs
JSDoc・TypeDoc およびマルチレイヤードなドキュメントパターンを活用し、対象読者に応じた包括的な TypeScript ドキュメントを生成します。APIドキュメントの作成、アーキテクチャ決定記録(ADR)、コードサンプル、NestJS・Express・React・Angular・Vue 向けのフレームワーク固有パターンの整備に活用してください。
description の原文を見る
Generates comprehensive TypeScript documentation using JSDoc, TypeDoc, and multi-layered documentation patterns for different audiences. Use when creating API documentation, architectural decision records (ADRs), code examples, and framework-specific patterns for NestJS, Express, React, Angular, and Vue.
SKILL.md 本文
TypeScript ドキュメンテーション
複数の対象向けの多層アーキテクチャを備えた本番環境対応のTypeScriptドキュメントを生成します。TypeDocを使用したAPIドキュメント、ADR、およびフレームワーク固有パターンをサポートしています。
概要
インラインドキュメンテーション用にJSDocアノテーションを、API参照生成用にTypeDocを、設計選択肢の追跡用にADRを使用してください。
主な機能:
- TypeDoc設定とAPIドキュメント生成
- すべてのTypeScript構成要素向けのJSDocパターン
- ADR作成と管理
- フレームワーク固有パターン(NestJS、React、Express、Angular、Vue)
- ドキュメンテーション品質のためのESLint検証ルール
- GitHub Actionsパイプラインセットアップ
使用場面
APIドキュメンテーション、アーキテクチャ決定記録、コード例、またはNestJS、Express、React、Angular、Vue向けのフレームワーク固有パターンを作成する際にこのスキルを使用してください。
クイックリファレンス
| ツール | 用途 | コマンド |
|---|---|---|
| TypeDoc | API ドキュメント生成 | npx typedoc |
| Compodoc | Angular ドキュメンテーション | npx compodoc -p tsconfig.json |
| ESLint JSDoc | ドキュメンテーション検証 | eslint --ext .ts src/ |
JSDoc タグ
| タグ | 用途 |
|---|---|
@param | パラメータをドキュメント化 |
@returns | 戻り値をドキュメント化 |
@throws | エラー条件をドキュメント化 |
@example | コード例を提供 |
@remarks | 実装に関する注記を追加 |
@see | 関連項目への相互参照 |
@deprecated | 非推奨APIをマーク |
手順
1. TypeDoc を設定
npm install --save-dev typedoc typedoc-plugin-markdown
{
"entryPoints": ["src/index.ts"],
"out": "docs/api",
"theme": "markdown",
"excludePrivate": true,
"readme": "README.md"
}
2. JSDoc コメントを追加
/**
* ユーザー認証を管理するサービス
*
* @remarks
* bcryptパスワードハッシング付きのJWTベース認証を処理します。
*
* @example
* ```typescript
* const authService = new AuthService(config);
* const token = await authService.login(email, password);
* ```
*
* @security
* - bcryptでパスワードをハッシュ化(コスト係数 12)
* - JWTトークンをRS256で署名
*/
@Injectable()
export class AuthService {
/**
* ユーザーを認証してアクセストークンを返す
* @param credentials - ユーザーログイン認証情報
* @returns トークン付き認証結果
* @throws {InvalidCredentialsError} 認証情報が無効な場合
*/
async login(credentials: LoginCredentials): Promise<AuthResult> {
// 実装
}
}
3. ADR を作成
# ADR-001: TypeScript ストリクトモード設定
## ステータス
承認済み
## コンテキスト
この決定を促す問題は何ですか?
## 決定
何を提案していますか?
## 結果
何が簡単または難しくなりますか?
4. CI/CD パイプラインをセットアップ
name: Documentation
on:
push:
branches: [main]
paths: ['src/**', 'docs/**']
jobs:
generate-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- run: npm ci
- run: npm run docs:generate
- run: npm run docs:validate
5. ドキュメンテーションを検証
{
"rules": {
"jsdoc/require-description": "error",
"jsdoc/require-param-description": "error",
"jsdoc/require-returns-description": "error",
"jsdoc/require-example": "warn"
}
}
検証に失敗した場合: ESLintエラーを確認し、JSDocコメントを修正(説明を追加、欠けている@param/@returns/@throwsを追加)し、すべてのエラーが解決するまでeslint --ext .ts src/を再実行してからコミットしてください。
例
React フックのドキュメント化
/**
* ページネーション付きデータ取得カスタムフック
*
* @remarks
* このフックは読み込み状態、エラーハンドリング、および
* ページまたはフィルタが変更されたときの自動再取得を管理します。
*
* @example
* ```tsx
* function UserList() {
* const { data, isLoading, error } = usePaginatedData('/api/users', {
* page: currentPage,
* limit: 10
* });
*
* if (isLoading) return <Spinner />;
* if (error) return <ErrorMessage error={error} />;
* return <UserTable users={data.items} />;
* }
* ```
*
* @param endpoint - 取得元のAPIエンドポイント
* @param options - ページネーションおよびフィルタオプション
* @returns アイテムとメタデータを含むページネーション応答
*/
export function usePaginatedData<T>(
endpoint: string,
options: PaginationOptions
): UsePaginatedDataResult<T> {
// 実装
}
ユーティリティ関数のドキュメント化
/**
* RFC 5322仕様を使用してメールアドレスを検証
*
* @param email - 検証するメールアドレス
* @returns メール形式が有効な場合はtrue
*
* @example
* ```typescript
* isValidEmail('user@example.com'); // true
* isValidEmail('invalid-email'); // false
* ```
*
* @performance
* O(n) (n はメール文字列の長さ)
*
* @see {@link https://tools.ietf.org/html/rfc5322} RFC 5322仕様
*/
export function isValidEmail(email: string): boolean {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return emailRegex.test(email);
}
NestJS コントローラーのドキュメント化
/**
* ユーザー管理用の REST API エンドポイント
*
* @remarks
* すべてのエンドポイントはBearer トークン経由の認証が必要です。
* レート制限: ユーザーあたり1分間に100リクエスト。
*
* @example
* ```bash
* curl -H "Authorization: Bearer <token>" https://api.example.com/users/123
* ```
*
* @security
* - すべてのエンドポイントはHTTPSを使用
* - JWTトークンは1時間後に期限切れ
* - 機密データはログから削除
*/
@Controller('users')
export class UsersController {
/**
* IDでユーザーを取得
* @param id - ユーザーUUID
* @returns ユーザープロフィール(パスワード除外)
*/
@Get(':id')
async getUser(@Param('id') id: string): Promise<UserProfile> {
// 実装
}
}
ベストプラクティス
- 公開 API をドキュメント化: すべてのpublicメソッド、クラス、およびインターフェース
@exampleを使用: 複雑な関数に実行可能な例を提供@throwsを含める: 考えられるすべてのエラーをドキュメント化@seeを追加: 関連関数/型への相互参照@remarksを使用: 実装の詳細と注記を追加- ジェネリクスをドキュメント化: ジェネリック制約と使用法を説明
- パフォーマンスノートを含める: 時間/空間計算量をドキュメント化
- セキュリティ警告を追加: セキュリティに関する考慮事項をハイライト
- 更新を維持: コードが変更されるたびにドキュメントを更新
- 明白なコードはドキュメント化しない: 何ではなく理由に焦点を当てる
制約と警告
- プライベートメンバー:
@privateを使用するか TypeDoc 出力から除外 - 複雑な型: ジェネリック制約と型パラメータをドキュメント化
- 破壊的な変更:
@deprecatedを使用して移行ガイダンスを追加 - セキュリティ情報: ドキュメンテーションに秘密や認証情報を含めない
- リンク有効性:
@see参照が有効な場所を指していることを確認 - 例コード: すべての例は実行可能でテストされるべき
- バージョン管理: ドキュメンテーションをコードバージョンと同期させる
参考資料
references/jsdoc-patterns.md— インターフェース、関数、クラス、ジェネリクス、ユニオン向けのJSDocパターンreferences/framework-patterns.md— NestJS、React、Express、Angular向けのフレームワーク固有パターンreferences/adr-patterns.md— ADRテンプレートと例references/pipeline-setup.md— ドキュメンテーション用CI/CDパイプライン設定references/validation.md— ESLintルールと検証チェックリストreferences/typedoc-configuration.md— 完全なTypeDoc設定オプションreferences/examples.md— 追加コード例
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- giuseppe-trisciuoglio
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/giuseppe-trisciuoglio/developer-kit / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。