mcpField
G
genesis

genesis

github.com/lwlee2608開発174 回インストール2 週間前に更新
リポジトリ

genesis について

genesis CLI と `lwlee2608/genesis` の最新テンプレートで新しいリポジトリを構成するスキルです。必要な構成やファイルだけを選び、プロジェクトに合わせて調整する手順を示します。

主な機能

  1. 01フラグモードでの CLI 実行
  2. 02テンプレートに基づく構成
  3. 03範囲を絞ったファイルコピー
  4. 04プロジェクト名と DB 名の調整
  5. 05フロントエンドの Oxlint 設定

活用シーン

  1. 01新規リポジトリの作成
  2. 02指定したサーバー要素の追加
  3. 03テンプレートファイルの調整
  4. 04フロントエンドの lint 設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lwlee2608/genesis --skill genesis

インストール後、Claude Code で/genesisを入力して読み込まれたか確認します。

詳細

Genesis のスキャフォールディング

genesis CLI で新しいリポジトリを開始します。それ以外はすべて、lwlee2608/genesis の reference/project-00 テンプレートから追加します。これらのファイルを一から、または記憶を頼りに作成しないでください。

構成

reference/project-00/
├── docker-compose.yml          # dev stack: Postgres only
└── services/
    ├── project-00-server/      # Go API
    │   ├── cmd/project-00/     # main, config, logger
    │   ├── internal/
    │   │   ├── api/http/       # router, handlers, dto, middleware
    │   │   └── db/             # migrations, queries, sqlc (generated)
    │   ├── Dockerfile
    │   ├── Makefile
    │   └── sqlc.yaml
    └── project-00-web/         # React/Vite/TS app
        ├── src/                # main.tsx, App.tsx
        ├── Dockerfile          # build + nginx serve
        ├── nginx.conf
        └── entrypoint.sh

引数

  • new、または .git 以外に何もないディレクトリで引数が指定されていない場合:ルール 1 に従います。
  • その他の引数(例:「サーバーを追加」「sqlc をセットアップ」):作業の範囲を指定します。テンプレート全体ではなく、一致するファイルだけをコピーします。
  • 空ではないディレクトリで引数が指定されていない場合:どの部分をスキャフォールディングするか尋ねます。

ルール

  1. 新しいリポジトリは genesis のフラグモードで開始します。 対象ディレクトリで genesis -name <app> -module <module> を実行し、CLI が生成しない部分をテンプレートから追加します。

    • genesis を引数なしで実行しないでください。TUI が開き、TTY がない場合は 1 で終了します。
    • -name の既定値はディレクトリ名、-module の既定値は origin リモートです。いずれかが設定されていない、または正しくない場合は、両方を指定してください。
    • -fullstack と -http の既定値は true です。=false を指定して無効にします。
    • AI README をユーザーが求めた場合に限り、-readme -desc "<one line>" を追加します。これには OPENROUTER_API_KEY が必要です。
    • CLI は空ではないディレクトリでは実行できません。ファイルを警告なしに置き換えるため、ユーザーが上書きを確認した後に限り -force を追加します。
    • genesis が見つからない場合、または flag provided but not defined で失敗した場合(フラグモードに対応する前のバージョンです)は、curl -fsSL https://raw.githubusercontent.com/lwlee2608/genesis/main/scripts/install.sh | bash でインストールする前にユーザーに確認してください。
  2. 記憶を頼りに作業せず、最新のリポジトリをクローンします。 https://github.com/lwlee2608/genesis を(ブランチ main から)--depth=1 を指定して /tmp/genesis-template に一度だけクローンします。その後、reference/project-00 以下のファイルを読みます。モノレポのレイアウトもテンプレートの一部であり、ファイルだけではありません。リポジトリは更新されるため、記憶に基づく内容は古くなります。

  3. そのままコピーせず、適切に調整します。 すべての project-00 をプロジェクト名に置き換えます。ディレクトリ名、Go モジュール github.com/lwlee2608/project-00、cmd/project-00/ のパスとバイナリ、Makefile の APP :=、Docker のイメージ名とコンテナ名に含まれています。Postgres のデータベース名とユーザー名には、アンダースコア形式(project_00)を使用します。テンプレートのその他の構成と規約は維持します。

  4. Web フロントエンドには Oxlint を使用します。 参照元から .oxlintrc.json、oxlint 依存関係、lint スクリプトをコピーします。React Hooks と React Refresh のルールを維持します。置き換え対象となる ESLint の設定と依存関係を削除し、pnpm でロックファイルを再生成します。

成果物を Railway にデプロイする場合は、/genesis-railway を使用します。Overwatcher を使用する VM 向けの prod compose は、/genesis-cicd overwatcher から取得します。

コメント