code-documentation
コードベースやAPIのドキュメント作成を支援するスキルです。APIリファレンス、READMEファイル、インラインコメント、技術ガイドなど、あらゆる形式のドキュメントに対応します。コードの説明や開発者向けガイドの執筆時にご活用ください。
description の原文を見る
Writing effective code documentation - API docs, README files, inline comments, and technical guides. Use for documenting codebases, APIs, or writing developer guides.
SKILL.md 本文
コードドキュメンテーション
README の構成
標準的な README テンプレート
# Project Name
このプロジェクトが何をするかについての簡潔な説明。
## クイックスタート
\`\`\`bash
npm install
npm run dev
\`\`\`
## インストール
詳細なインストール手順...
## 使用方法
\`\`\`typescript
import { something } from 'project';
// 使用例
const result = something.doThing();
\`\`\`
## API リファレンス
### `functionName(param: Type): ReturnType`
関数が何を行うかについての説明。
**パラメータ:**
- `param` - パラメータの説明
**戻り値:** 戻り値の説明
**例:**
\`\`\`typescript
const result = functionName('value');
\`\`\`
## 設定
| オプション | 型 | デフォルト | 説明 |
|--------|------|---------|-------------|
| `option1` | `string` | `'default'` | 機能説明 |
## 貢献
貢献方法...
## ライセンス
MIT
API ドキュメンテーション
JSDoc/TSDoc スタイル
/**
* 新しいユーザーアカウントを作成します。
*
* @param userData - アカウント作成用のユーザーデータ
* @param options - オプション設定
* @returns 作成されたユーザーオブジェクト
* @throws {ValidationError} メールアドレスが無効な場合
* @example
* ```ts
* const user = await createUser({
* email: 'user@example.com',
* name: 'John'
* });
* ```
*/
async function createUser(
userData: UserInput,
options?: CreateOptions
): Promise<User> {
// 実装
}
/**
* API クライアントの設定オプション。
*/
interface ClientConfig {
/** API ベース URL */
baseUrl: string;
/** リクエストタイムアウト(ミリ秒) @default 5000 */
timeout?: number;
/** リクエストに含める カスタムヘッダー */
headers?: Record<string, string>;
}
OpenAPI/Swagger
openapi: 3.0.0
info:
title: My API
version: 1.0.0
paths:
/users:
post:
summary: ユーザーを作成
description: 新しいユーザーアカウントを作成します
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserInput'
responses:
'201':
description: ユーザーが正常に作成されました
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'400':
description: 無効な入力
components:
schemas:
UserInput:
type: object
required:
- email
- name
properties:
email:
type: string
format: email
name:
type: string
User:
type: object
properties:
id:
type: string
email:
type: string
name:
type: string
createdAt:
type: string
format: date-time
インラインコメント
コメントを書くべき場合
// 良い例: 何かではなく、なぜかを説明する
// リストは常にソート済みで、
// 数百万の項目が含まれる可能性があるため二分探索を使用 - O(log n) vs O(n)
const index = binarySearch(items, target);
// 良い例: 複雑なビジネスロジックを説明する
// ユーザーが 2 年以上のメンバーであり、
// かつ 10 回以上の購入を行った場合は 20% の割引を適用
// (2024年第4四半期のマーケティングチーム決定による)
if (user.memberYears >= 2 && user.purchaseCount >= 10) {
applyDiscount(0.2);
}
// 良い例: ワークアラウンドを文書化する
// HACK: Safari はこの API をサポートしていないため、ポーリングにフォールバック
// TODO: Safari がサポートを追加したら削除 (tracking: webkit.org/b/12345)
if (!window.IntersectionObserver) {
startPolling();
}
コメントを書くべきでない場合
// 悪い例: 明らかなことを述べている
// カウンターを1増やす
counter++;
// 悪い例: 明確なコードを説明している
// ユーザーが管理者かどうかを確認
if (user.role === 'admin') { ... }
// 悪い例: 古いコメント(コメントがないより悪い)
// ユーザーのフルネームを返す <-- 実際にはメールを返す!
function getUserIdentifier(user) {
return user.email;
}
アーキテクチャドキュメンテーション
ADR (Architecture Decision Record)
# ADR-001: プライマリーデータベースに PostgreSQL を使用
## ステータス
承認済み
## 背景
ユーザーデータとトランザクションを保存するためのデータベースが必要。
検討されたオプション: PostgreSQL、MySQL、MongoDB、DynamoDB。
## 決定
PostgreSQL と Supabase ホスティングを使用する。
## 根拠
- 財務データに強い ACID コンプライアンスが必要
- チームに PostgreSQL の経験がある
- Supabase は認証とリアルタイム機能を提供する
- pgvector 拡張機能で将来の AI 機能に対応
## 結果
- スキーママイグレーションを管理する必要がある
- スケール時にリードレプリカが必要な可能性がある
- チームが Supabase 固有の機能を学ぶ必要がある
コンポーネントドキュメンテーション
## 認証モジュール
### 概要
リフレッシュトークンローテーション付き JWT トークンを使用したユーザー認証を処理します。
### フロー
1. ユーザーが `/auth/login` に認証情報を送信
2. サーバーが検証し、アクセストークン + リフレッシュトークンを返す
3. アクセストークンが API リクエストに使用される (15分の有効期限)
4. リフレッシュトークンが新しいアクセストークンの取得に使用される (7日の有効期限)
### 依存関係
- `jsonwebtoken` - トークンの生成/検証
- `bcrypt` - パスワードハッシング
- `redis` - リフレッシュトークンストレージ
### 設定
- `JWT_SECRET` - トークン署名用のシークレット
- `ACCESS_TOKEN_EXPIRY` - アクセストークンの有効期限
- `REFRESH_TOKEN_EXPIRY` - リフレッシュトークンの有効期限
ドキュメンテーションの原則
- 対象読者に向けて書く - 新規開発者と API コンシューマーでは異なる
- コードの近くに保つ - ドキュメントを同じリポジトリ内、関連コードの近くに配置
- コードと一緒に更新する - 古いドキュメントはないよりも悪い
- 説明より例を優先する - 説明するだけでなく、見せる
- 段階的な情報開示 - クイックスタートを最初に、詳細は後で
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- skillcreatorai
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/skillcreatorai/ai-agent-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。