samueltuoyo15/Dokugen

Turn your messy repositories into job-ready portfolio pieces. Generate crystal-clear READMEs recruiters actually read, and professional Conventional Commits that make your git history look senior.

Dokugen – AI駆動のREADME&変更履歴生成ツール

概要 – Dokugenは開発者向けのツールで、コードベースをスキャンし、関連ファイルを大規模言語モデル(GoogleのGemini、ApiSmart/OpenAI互換API経由でアクセス可能)に送信して、洗練された README.md を返します。さらに以下の機能も備えています:

  • READMEの自動生成部分のみを更新し、手動で編集した箇所は保持します。
  • ステージングされたファイルの差分から、慣習的なGitコミットメッセージを生成します。
  • コミット履歴を分析し、Keep a Changelog 形式に従った CHANGELOG.md を構築します。
  • READMEの以前のバージョンをバックアップし、即座に復元できるようにします。

これらすべては、インタラクティブメニューまたは明示的なサブコマンドで動作するシンプルなコマンドラインインターフェース(CLI)から実行可能です。


コアコンポーネント

コンポーネント 役割
CLIクライアント (TypeScript, Python, Go) プロジェクトファイルを収集し、バックエンドAPIと通信し、生成されたMarkdownをリポジトリに書き込むローカルエントリーポイント。
APIサーバー (Node.js + Express) コードスナップショットを受け取り、Geminiモデルに転送し、AIの出力を既存のREADMEとマージして結果を返す。
Supabase DB ユーザープロファイルと生成されたREADMEのバックアップコピーを保存。
Gemini (またはApiSmart経由のOpenAI互換モデル) ドキュメントとコミットメッセージを実際に作成するLLM。
モノレポツール (Turborepo, pnpm) 複数のパッケージ(サーバー、CLIクライアント、将来のWeb UI)を同期。

主な機能

  • インタラクティブメニュー – 引数なしで dokugen を実行し、Generate、Update、Commit、Changelog などを選択可能。
  • スマートアップデート – dokugen update を再実行すると、自動生成されたセクションのみが更新され、カスタムテキスト、バッジ、メモはそのまま維持されます。
  • AI支援コミット (dokugen aic) – CLIがステージングされたファイルの git diff を抽出し、モデルに送信して、確認・編集可能な慣習的コミットメッセージを返します。
  • 圧縮アップロード – コードは70〜90%圧縮されてAPIペイロード制限内に収まり、大規模プロジェクトの分析を可能にします。
  • 自動変更履歴 (dokugen changelog) – リポジトリのコミット履歴をスキャンし、Keep a Changelog 規約に準拠した CHANGELOG.md を作成/更新します。
  • 言語非依存 – CLIはファイルを読み取ってモデルに送信するだけなので、あらゆるスタック(JavaScript/TS, Python, Rust, Go, Java, C++など)で動作します。

はじめに

  1. クローンとインストール
    git clone https://github.com/samueltuoyo15/Dokugen.git
    cd Dokugen
    pnpm install   # または npm/yarn
    
  2. バックエンドの実行 (SupabaseプロジェクトとAPIキーが必要)
    cd apps/server
    cp .env.example .env   # キーを入力 (OpenAI/ApiSmart, Supabaseなど)
    pnpm run dev   # または pnpm run build && pnpm start
    
  3. CLIのインストール – TypeScript版をグローバルインストールする場合:
    cd apps/cli/clients/typescript
    pnpm run build
    pnpm install -g .
    
    またはPython版を仮想環境にインストールする場合:
    cd apps/cli/clients/python
    python -m venv .venv && source .venv/bin/activate
    pip install -e .
    
  4. READMEの生成
    dokugen generate   # 現在のフォルダに対してAIを実行
    
    --template を使用してカスタムテンプレートURLを指定することも可能です。

一般的なワークフロー

$ dokugen               # インタラクティブメニューを開く
> Generate README
   → ファイルをスキャンし、Geminiを呼び出し、README.mdを書き込む
> AI Commit (aic)
   → ステージングされた差分を読み取り、コミットメッセージを取得し、コミットする
> Changelog
   → 履歴からCHANGELOG.mdを構築/更新する

AIの出力が気に入らない場合は、dokugen revert で即座に以前のバックアップを復元できます。


技術スタックの概要

  • モノレポ – Turborepo
  • バックエンド – Node.js 18+, TypeScript, Express, Supabase
  • AIモデル – Gemini (またはApiSmart/OpenRouter経由のOpenAI互換エンドポイント)
  • CLIクライアント – TypeScript (Node), Python, Go
  • パッケージング – pnpm workspaces; Windows/macOS/Linux用のビルド済みバイナリも提供

ライセンスとコミュニティ

  • ライセンス – MIT (寛容、商用利用可能)。
  • 貢献 – ガイドラインは CONTRIBUTION.md に記載。PR、バグ報告、機能アイデアを歓迎します。
  • 作者 – Samuel Tuoyo (LinkedIn, X)。

誰のためのツールか?

  • 手動作成なしで一貫性のある最新のドキュメントを維持したいオープンソースメンテナー。
  • クリーンなGit履歴のために、迅速かつ慣習的なコミットメッセージを必要とするチーム。
  • あらゆる言語スタックで変更履歴生成を自動化したい方。

Dokugenは、プロジェクトドキュメントの反復的な作業を単一コマンド操作に変える、大規模言語モデルの軽量ラッパーです。開発者が大切にするカスタム部分はそのまま維持されます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト