Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
NotificationsYou must be signed in to change notification settings

mizchi/ailab

Repository files navigation

このプロジェクトは、AI(特にコーディングエージェント)と Denoを組み合わせたコード生成の実験場です。Denoプロジェクトにおけるコーディングルールとモードを定義するための設定ファイルを管理し、AIによるコード生成の品質と効率を向上させることを目的としています。

.clinerules.roomodes が主ない生成物です。

プロジェクト概要

主要な目標

  1. AI コーディングエージェント(CLINE/Rooなど)のための明確なルールとモードを定義する
  2. Deno プロジェクトにおけるベストプラクティスを確立する
  3. 型安全なコード生成と検証の仕組みを提供する
  4. テスト駆動開発(TDD)のワークフローを AI コーディングに適用する
  5. アダプターパターンなどの設計パターンを活用した実装例を提供する

コアコンポーネント

  1. コーディングルール定義

    • 基本ルール(型と関数インターフェース設計、コードコメント、実装パターン選択)
    • Deno 固有のルール(テスト、モジュール依存関係、コード品質監視)
    • Git ワークフロー(コミット、プルリクエスト作成)
    • TypeScript ベストプラクティス(型使用方針、エラー処理、実装パターン)
  2. 実装モード

    • スクリプトモード: 一つのファイルに完結した実装
    • テストファーストモード: 型シグネチャとテストを先に書く実装
    • モジュールモード: 複数のファイルで構成される実装
  3. ユーティリティモジュール

    • type-predictor: JSON データから型を予測し、zod スキーマを生成するモジュール
    • アダプターパターン実装例: 外部 API との通信を抽象化する実装

技術スタック

コア技術

  • Deno: TypeScript のネイティブサポート、セキュリティ機能、標準ライブラリ
  • TypeScript: 静的型付け、型推論、インターフェース
  • Zod: スキーマ検証、ランタイム型チェック
  • Neverthrow: Result 型によるエラー処理

テスト技術

  • Deno 標準テストライブラリ:@std/expect@std/testing/bdd
  • テストカバレッジ計測

ビルドとツール

  • Deno タスクランナー:deno.json での定義
  • GitHub Actions: CI/CD パイプライン

主要モジュール

type-predictor

JSONデータから型を予測し、zodスキーマを生成するモジュール。

特徴:

  • JSONデータの構造を解析し、型を予測
  • 配列、オブジェクト、Record型、列挙型などの高度な型を検出
  • zodスキーマの自動生成
  • 詳細な型情報の分析機能

使用例:

import{TypePredictor}from"./mod.ts";// インスタンスを作成constpredictor=newTypePredictor();// JSONデータから型を予測してスキーマを生成constdata={name:"John",age:30,scores:[85,92,78],};// スキーマを生成constschema=predictor.predict(data);// スキーマを使用してバリデーションconstresult=schema.safeParse(data);

zodcli

Zod を使用した型安全なコマンドラインパーサーモジュールです。

特徴:

  • 型安全: Zodスキーマに基づいた型安全なCLIパーサー
  • 自動ヘルプ生成: コマンド構造から自動的にヘルプテキストを生成
  • 位置引数とオプションのサポート: 位置引数と名前付き引数の両方をサポート
  • サブコマンドのサポート: gitのようなサブコマンド構造をサポート
  • デフォルト値: Zodの機能を活用したデフォルト値の設定

使用例:

import{createCliCommand,runCommand}from"@mizchi/zodcli";import{z}from"npm:zod";constcli=createCliCommand({name:"myapp",description:"My CLI application",args:{file:{type:z.string().describe("input file"),positional:true,},verbose:{type:z.boolean().default(false),short:"v",},},});constresult=cli.parse(Deno.args);runCommand(result,(data)=>{console.log(`Processing${data.file}, verbose:${data.verbose}`);});

アダプターパターン実装例

TypeScriptでのAdapterパターンは、外部依存を抽象化し、テスト可能なコードを実現するためのパターンです。

実装パターン:

  1. 関数ベース: 内部状態を持たない単純な操作の場合
  2. classベース: 設定やキャッシュなどの内部状態を管理する必要がある場合
  3. 高階関数とコンストラクタインジェクション:外部APIとの通信など、モックが必要な場合

ベストプラクティス:

  • インターフェースはシンプルに保つ
  • 基本的には関数ベースを優先する
  • 内部状態が必要な場合のみclassを使用する
  • エラー処理はResult型で表現し、例外を使わない

現在の状況

コンポーネントステータス進捗率優先度
ルールとモード定義安定90%
type-predictor開発中60%
zodcli安定100%
アダプターパターン例安定80%
テストインフラ安定70%
CI/CD パイプライン開発中50%
メモリバンク初期段階30%
ドキュメント初期段階40%

次のマイルストーン

  1. type-predictor の基本機能完成(現在)

    • 基本的な型検出と予測
    • 基本的な zod スキーマ生成
    • 基本的なテストケース
  2. type-predictor の拡張機能(次のフェーズ)

    • Record 型、列挙型、ユニオン型の検出
    • エッジケースのテスト追加
    • パフォーマンスの最適化
  3. 実装例の充実(将来)

    • 新しい設計パターンの実装例
    • モジュールモードの詳細な実装例
    • ユースケースの例の追加

ts-callgraph

TypeScriptコードのコールグラフを生成するツールです。

使用例:

deno run -A ts-callgraph/cli.ts scripts/callgraph-sample.ts --format function-summary
  1. 完全なドキュメントとテスト(最終フェーズ)
    • API ドキュメントの完成
    • テストカバレッジ目標の達成
    • チュートリアルとガイドラインの完成
    • CI/CD パイプラインの完全自動化

.cline ディレクトリの説明

このリポジトリの.cline ディレクトリは、Denoプロジェクトにおけるコーディングルールとモードを定義するための設定ファイルを管理しています。

ディレクトリ構造

.cline/├── build.ts        - プロンプトファイルを結合して .clinerules と .roomodes を生成するスクリプト├── rules/          - コーディングルールを定義するマークダウンファイル│   ├── 01_basic.md       - 基本的なルールと AI Coding with Deno の概要│   ├── deno_rules.md     - Deno に関するルール(テスト、モジュール依存関係など)│   ├── git_workflow.md   - Git ワークフローに関するルール│   └── ts_bestpractice.md - TypeScript のコーディングベストプラクティス└── roomodes/       - 実装モードを定義するマークダウンファイル    ├── deno-script.md    - スクリプトモードの定義    ├── deno-module.md    - モジュールモードの定義    └── deno-tdd.md       - テストファーストモードの定義

生成されるファイル

.cline/build.ts スクリプトを実行すると、以下のファイルが生成されます:

  1. .clinerules -rulesディレクトリ内のマークダウンファイルを結合したファイル
  2. .roomodes -roomodes ディレクトリ内のマークダウンファイルから生成されたJSON ファイル

使用方法

  1. .cline/rulesディレクトリにコーディングルールを定義するマークダウンファイルを追加または編集します。
  2. .cline/roomodesディレクトリに実装モードを定義するマークダウンファイルを追加または編集します。
  3. .cline/build.ts スクリプトを実行して、.clinerules.roomodesファイルを生成します。
deno run --allow-read --allow-write .cline/build.ts
  1. 生成された.clinerules.roomodes ファイルは、AIコーディングアシスタント(CLINE/Rooなど)によって読み込まれ、プロジェクトのルールとモードが適用されます。

モードの切り替え方法

プロジェクトで定義されているモードは以下の通りです:

  • deno-script (Deno:ScriptMode) - スクリプトモード
  • deno-module (Deno:Module) - モジュールモード
  • deno-tdd (Deno:TestFirstMode) - テストファーストモード

モードを切り替えるには、AIコーディングアシスタントに対して以下のように指示します:

モードを deno-script に切り替えてください。

または、ファイルの冒頭に特定のマーカーを含めることでモードを指定することもできます:

  • スクリプトモード:@script
  • テストファーストモード:@tdd

例:

//@script@tdd// このファイルはスクリプトモードとテストファーストモードの両方で実装されます

開発環境のセットアップ

必要なツール

  1. Deno のインストール

    # Unix (macOS, Linux)curl -fsSL https://deno.land/x/install/install.sh| sh# Windows (PowerShell)iwr https://deno.land/x/install/install.ps1 -useb| iex
  2. エディタ設定

    • VSCode + Deno 拡張機能
    • 設定例:
      {"deno.enable":true,"deno.lint":true,"deno.unstable":false,"editor.formatOnSave":true,"editor.defaultFormatter":"denoland.vscode-deno"}
  3. プロジェクトのセットアップ

    # リポジトリのクローンgit clone<repository-url>cd<repository-directory># 依存関係のキャッシュdeno cache --reload deps.ts# ルールとモードの生成deno run --allow-read --allow-write .cline/build.ts

開発ワークフロー

  1. 新しいスクリプトの作成

    # スクリプトモードでの開発touch scripts/new-script.ts# ファイル冒頭に `@script` を追加
  2. テストの実行

    # 単一ファイルのテストdenotest scripts/new-script.ts# すべてのテストの実行denotest# カバレッジの計測denotest --coverage=coverage&& deno coverage coverage
  3. リントとフォーマット

    # リントdeno lint# フォーマットdeno fmt
  4. 依存関係の検証

    deno task check:deps

ライセンス

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp