new-project-setup について
new-project-setupは、プロジェクトにllmwiki/を初期構築し、コードベースを整理するエージェントスキルです。テンプレートとスキルの設定、ナレッジベースの初期作成、WSL限定のRTK設定、レポート草案の作成を行います。
主な機能
- 01llmwiki/の有無を確認
- 02テンプレート同期とスキル導入
- 03ナレッジベースの構成と初期ページ作成
- 04WSL限定のRTK設定
- 05コードベースの概念とエンティティ整理
活用シーン
- 01新規プロジェクトでのllmwiki/初期化
- 02確認後の既存ナレッジベース再初期化
- 03README.mdやgo.modからのプロジェクト情報作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rheinmir/ setup --skill new-project-setupインストール後、Claude Code で/new-project-setupを入力して読み込まれたか確認します。
詳細
スキル:new-project-setup
WHAT
目的とコンテキスト
- 目的: あるプロジェクトの
llmwiki/を一から構築します。テンプレートの取得とスキルのインストール、Wiki のディレクトリ構成、RTK(WSL)、Wiki の初期データ作成、その後のコードベースのオンボーディングを行います。 - トリガー(使用するタイミング): プロジェクトに
llmwiki/がまだない場合、または一からリセットする場合です。 - 対象外: スキルを個別にインストールしません(sync-template のステップ 7 で処理します)。lint を個別に呼び出しません(onboard-codebase に含まれています)。WSL 以外では RTK をインストールしません。自動では起動しません(
disable-model-invocation: true)。
メンタルモデル
llmwiki を確認 → sync-template(テンプレート + スキル) → Wiki のディレクトリ構成 → RTK(WSL のみ) → 初期データ作成(project-requirements + log + index) → onboard-codebase(concepts + entities + lint) → レポートを出力
入力と出力の契約
| フィールド | 必須? | 意味 | |
|---|---|---|---|
| 入力 | プロジェクトディレクトリ | はい | プロジェクトのルートで実行します |
| 入力 | README.md、package.json、または go.mod | いいえ | 初期データ作成時のプロジェクト名とスタックの情報源です |
| 入力 | リセットへの回答 | llmwiki/ がすでに存在する場合 | リセットするかどうかです |
| 出力 | llmwiki/wiki/{concepts,entities,sources/draft}、llmwiki/{skills,raw} | はい | ディレクトリ構成と index.md、log.md、raw/.gitkeep です |
| 出力 | llmwiki/wiki/sources/project-requirements.md | はい | OKF フロントマター + ## Origin です |
| 出力 | RTK のフック設定済み | WSL のみ | rtk init -g + ~/.claude/settings.json のフックです |
| 出力 | オンボーディング済み Wiki + レポートのドラフト | はい | onboard-codebase が生成する concepts/entities です |
ルールと機能
- RULE-01(必須):スキルのインストールは sync-template のステップ 7 で処理します。重複して実行しないでください。
- RULE-02(必須):onboard-codebase には lint が含まれています。lint を追加で呼び出さないでください。
- RULE-03(必須):curl の実行前に RTK のガード
uname -r | grep -qi microsoftを必ず実行してください。 - 機能:プロジェクトのファイルシステムへの書き込み、ネットワークアクセス(テンプレートの取得、RTK のダウンロード)、エージェントのグローバル設定(
~/.claude/settings.json)の変更(rtk init -g経由のみ)、子スキル sync-template と onboard-codebase の呼び出し。
失敗時の境界
llmwiki/がすでに存在する場合 → 確認:ユーザーにリセットするか尋ねます。リセットしない場合は停止します。- WSL ではない場合 → RTK の手順をスキップします(エラーではありません)。
- settings.json に RTK フックが見つからない場合 → 一部完了。「MANUAL: add rtk hook to settings.json」と出力します。
- sync-template または onboard-codebase が失敗した場合 → そのステップで失敗として、ユーザーに報告します。
HOW
メインワークフロー
| ステップ | 種別 | 入力 | アクション | 出力/終了条件 | 失敗時/次の処理 |
|---|---|---|---|---|---|
| W01 | 決定的 | プロジェクトルート | llmwiki の存在を確認 | exists または missing | exists → B01 |
| W02 | 副作用あり | ネットワーク | sync-template を呼び出す:テンプレートを取得 + スキルをインストール | コマンド + インストール済みスキル | エラー → 失敗 |
| W03 | 副作用あり | — | Wiki のフォルダー構成を初期化 | ディレクトリ構成 | — |
| W04 | 副作用あり | OS | RTK トークンプロキシ(WSL のみ)— B02 | RTK のフック設定済み | WSL 以外 → スキップ;フックがない → MANUAL |
| W05 | 判断 | README/package.json/go.mod | Wiki の初期データを作成:project-requirements、log、index | 初期ページ | — |
| W06 | 副作用あり | コードベース | onboard-codebase を呼び出す | concepts + entities + lint | エラー → 失敗 |
| W07 | 副作用あり | 結果 | レポートのドラフトを出力 | ドラフト + index + log | — |
各ステップの詳細(W01~W07 の正規の情報源):
1. llmwiki の存在を確認:
test -d llmwiki && echo exists || echo missing
exists の場合 → ユーザーにリセットするか尋ねます。リセットする場合は concepts/ + entities/ を削除し、log.md + sources/ は保持します。
2. テンプレートを取得 + スキルをインストール:
# INVOKE: sync-template
# sync-template tự pull từ rheinmir/setup@orca và install skills vào:
# .claude/commands/ → Claude Code
# ~/.agents/skills/*/SKILL.md → OpenCode / Antigravity
3. Wiki のフォルダー構成を初期化:
mkdir -p llmwiki/wiki/{concepts,entities,sources/draft} llmwiki/{skills,raw}
touch llmwiki/wiki/index.md llmwiki/wiki/log.md llmwiki/raw/.gitkeep
4. RTK トークンプロキシ(WSL のみ):
# Guard — chỉ chạy trong WSL:
uname -r | grep -qi microsoft || { echo "RTK install: WSL only — skip"; exit 0; }
# CHECK đã cài chưa:
rtk --version 2>/dev/null || {
curl -fsSL https://github.com/rtk-ai/rtk/releases/latest/download/rtk-x86_64-unknown-linux-musl.tar.gz \
| tar xz -C /usr/local/bin
}
# Init global config + patch ~/.claude/settings.json:
rtk init -g
# Verify hook:
grep -q "rtk hook claude" ~/.claude/settings.json && echo "RTK hooked" || echo "MANUAL: add rtk hook to settings.json"
5. Wiki の初期データを作成:
# Đọc README.md, package.json hoặc go.mod → project name + stack
llmwiki/wiki/sources/project-requirements.mdを作成します — フロントマター +## Origin- OKF v0.1(R9): フロントマターは、空でない
typeを含む YAML ブロック---です。_template.mdをコピーし、太字の**Type:**は使わないでください(旧形式です)。 llmwiki/wiki/log.mdに## YYYY-MM-DD — init — <project-name>を追記します。llmwiki/wiki/index.mdを作成します — ヘッダー + 空のテーブル
6. 呼び出し:onboard-codebase → concepts/ + entities/ を生成し、lint を実行します。
分岐
| ID | 種類 | 条件 | 動作 | スキップ/失敗 | 再開先 |
|---|---|---|---|---|---|
| B01 | conditional_required | W01 が exists を返す | ユーザーにリセットするか確認する。リセットする場合は concepts/ + entities/ を削除し、log.md + sources/ は保持する | ユーザーがリセットしない場合 → 停止 | W02 |
| B02 | conditional_required | カーネルに「microsoft」が含まれる(WSL) | RTK がまだない場合はインストールし、rtk init -g を実行してフックを検証する | WSL でない場合 → 手順 4 をスキップ | W05 |
検証と停止
次のコマンドで確認します:test -d llmwiki が exists を返すこと。WSL では settings.json を grep して「RTK hooked」が含まれること。project-requirements.md に frontmatter type(R9)と ## Origin があること。Lint は onboard-codebase 内で実行し、再実行しません。レポートの出力後に停止します。
例
- 成功例: macOS 上の新しい Go リポジトリに
llmwiki/がない場合 → W01 がmissingを返す → sync-template → 骨組みを作成 → RTK の手順で「RTK install: WSL only — skip」と出力 →go.modから seed → onboard-codebase →DDMMYY-init-<project>.mdの下書きを作成。 - 境界/失敗例:
llmwiki/がすでにあるプロジェクトで再実行 → W01 がexistsを返す → リセットするか確認する。ユーザーが同意した場合 →concepts/+entities/のみを削除し、log.mdとsources/はそのまま残す。
納品 — 出力レポート
スキルの主要タスクがすべて完了したら、Wiki に下書きの提案を作成します。
手順
1. ファイル名を作成します:
- 形式:
DDMMYY-<ten>.md DDMMYY= 今日の日付(例:2026 年 6 月 2 日の場合は020626)<ten>= 実施した内容を要約する 2~4 語の kebab-case(例:landing-page-coteccons、brand-kit-fintech、ingest-auth-spec)
2. llmwiki/wiki/sources/draft/DDMMYY-<ten>.md に書き込みます:
---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---
# DDMMYY-<ten>
**Type:** draft
**Status:** proposed
**Tags:** <skill-name>, output-report
**Proposed:** YYYY-MM-DD
## What
<One sentence — what this skill invocation produced or decided>
## Output
<Key artefacts, files created/modified, or decisions made>
## Files
| File | Action |
|------|--------|
| `path/to/file` | created / modified |
## Notes
- Invoked via: `/<skill-name>` skill
## Origin
- **Draft:** `wiki/sources/draft/DDMMYY-<ten>.md`
- **Commit:** _(filled by verify-before-commit)_
- **Date promoted:** _(filled by verify-before-commit)_
3. Wiki のインデックスとログを更新します:
llmwiki/wiki/index.md— 1 行追加します:| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |llmwiki/wiki/log.md— 追記します:## YYYY-MM-DD — <skill-name> — <ten>
スキルがアーティファクトも判断事項もまったく生成しない場合に限り、スキップします(例:
/caveman-statsのような表示のみのモード)。