プロジェクト内部とコントリビューション
ソースコード構造
ai-dev-kit/
├── src/
│ ├── index.ts # CLIエントリポイント(Commander.js)
│ ├── commands/ # CLIコマンドハンドラー(init、add)
│ ├── generators/ # テンプレートからのファイル生成ロジック
│ └── utils/ # ユーティリティ(ファイルシステム、ロギング)
├── templates/ # rules/skills/workflows/docsのテンプレートファイル
│ ├── rules/
│ ├── skills/
│ ├── workflows/
│ └── docs/
├── tests/ # ユニット&統合テスト(Vitest)
├── tsconfig.json
└── tsup.config.ts # ビルド設定
動作の仕組み
- CLIエントリポイント (
src/index.ts):Commander.jsを初期化しサブコマンドを登録します。 - コマンドハンドラー (
src/commands/):各コマンド(init、add)のロジックを処理します。 - ジェネレーター (
src/generators/):templates/からテンプレートを読み取り、レンダリングしてファイルシステムに書き込みます。 - テンプレート (
templates/):ユーザーのプロジェクトにコピーされるMarkdown/JSONテンプレートファイル。
開発環境のセットアップ
git clone https://git.caerux.com/caeruxlab/clx-ai-kit.git
cd clx-ai-kit
npm install
npm run dev # ウォッチモードビルド
テストの実行
npm test # テストスイート全体を実行
npm run test:watch # ウォッチモード
npm run test:coverage # カバレッジレポート
ビルド
npm run build
出力は dist/ ディレクトリに生成されます。
新しいコマンドの追加
src/commands/<command-name>.tsにハンドラーファイルを作成します。src/index.tsにコマンドを登録します。- 必要に応じて
templates/にテンプレートを追加します。 tests/にテストを作成します。
Lint&型チェック
npm run lint # TypeScript型チェック(tsc --noEmit)
コーディングルール
console.log禁止 — CLI出力のフォーマットにはpicocolorsを使用します。- 小さなファイル — 最大800行、理想的には200〜400行。
- イミュータブルパターン — オブジェクト/配列を直接変更しません。
- 名前付きエクスポート — 内部モジュールでは、デフォルトエクスポートより名前付きエクスポートを優先します。