Guide/guides
用語集
Guren のドキュメントによく出てくる言葉を、初めての人向けに短く説明します。ここにない用語は、それぞれのガイドの中で補足しています。
用語集
Guren のドキュメントによく出てくる言葉を、初めての人向けに短く説明します。ここにない用語は、それぞれのガイドの中で補足しています。
スタック
- Bun: JavaScript/TypeScript のランタイム。
bun runでスクリプトを実行し、bunxで CLI ツールを起動します。 - Hono: 軽量な HTTP サーバーフレームワーク。Guren は Hono の上にルーティングやコントローラーを載せています。
- Inertia.js: サーバーがページのデータ(props)を返し、SPA のように画面を切り替える仕組み。API と SPA の間を橋渡しします。
- React: UI を作るライブラリ。Guren のビューは React コンポーネントで書きます。
- Vite: フロントエンドのビルド/開発サーバー。
bun run devの裏で Vite が起動します。 - Drizzle ORM: TypeScript 向けの型安全 ORM。Guren のモデルは Drizzle のスキーマに接続します。
アプリの構造
- MVC: Model / View / Controller に役割を分ける設計。Guren の基本構造です。
- Route(ルート): パスと HTTP メソッドを、処理(コントローラーや関数)に結びつける定義。
- Controller(コントローラー): リクエストを受け取り、モデルでデータを扱い、レスポンスを返すクラス。
- Model(モデル): DB テーブルと紐づくクラス。
static tableで Drizzle スキーマに接続します。 - View(ビュー):
resources/js/pages/に置く React ページ。this.inertia()で指定します。 - Middleware(ミドルウェア): リクエストの前後に挟む処理(認証、ログ、検証など)。
- Provider(プロバイダー): アプリ起動時に設定やサービスを登録する仕組み。
- Context(コンテキスト): Hono の
Context。リクエスト情報やレスポンス生成に使います。
データベース
- ORM: テーブルをクラスとして扱う仕組み。SQL を直接書かずに操作できます。
- Schema(スキーマ): テーブル定義。
db/schema.tsに書きます。 - Migration(マイグレーション): スキーマ変更の履歴を SQL ファイルとして管理する方法。
- Seeder(シーダー): テストやデモ用のデータを投入するスクリプト。
- Database URL: DB 接続文字列。
.envのDATABASE_URLに設定します。 - RQB(Relational Query Builder): Drizzle のクエリビルダー。複雑な JOIN や集計に使います。
- Eager Load(イーガーロード): 関連データをまとめて取得すること。
with()などで指定します。
フロントエンド
- SPA: ページ遷移で画面全体を再読み込みしないアプリ。
- SSR: サーバー側で HTML を生成して返す方式。初回表示が速くなります。
- Props(プロップス): コンポーネントに渡すデータ。Inertia ではサーバーが props を返します。
- HMR: Vite によるフロントエンドのホットリロード。ページを保存すると、すぐに画面が更新されます。バックエンド(コントローラー・ルート・モデル)も
bun --hotで動いているので、変更は再起動なしで反映されます。 - Inertia ページ:
resources/js/pages/に置く React コンポーネント。ふつうはpages.posts.Indexのような page definition をthis.inertia()に渡して指定します。pagesは codegen が.guren/pages.gen.tsに生成します。
CLI
- create-guren-app: 新規アプリのひな形を作る CLI。
- guren CLI:
bunx guren make:*などの開発用コマンド群。
エージェントハーネス
- エージェントハーネス:
create-guren-appがコーディングエージェント向けに入れるファイル一式。エージェントが最初に読むファイル、編集のたびに実行されるもの、ターンを終える前に実行されるものが含まれます。 - CLAUDE.md: Claude Code がセッションの最初に読むプロジェクトの説明書。公式ドキュメント
- ルール(rules):
.claude/rules/に置く指示。pathsに合うファイルを編集するときだけ読み込まれます。公式ドキュメント - スキル(skills): 特定の種類の作業でエージェントが従う手順。
.claude/skills/<name>/SKILL.mdに書きます。公式ドキュメント - サブエージェント(subagents): 独自の指示と独自のコンテキストを持ち、メインのエージェントから呼び出されるエージェント。
.claude/agents/に置きます。公式ドキュメント - hooks: セッション開始、ファイル編集、ターン終了などの時点で Claude Code が実行するコマンド。
.claude/settings.jsonに書きます。公式ドキュメント - ゲート(
guren gate): codegen、typecheck、lint、check、audit、テストをまとめて実行するコマンド。CI でもStophook でも、同じゲートが実行されます。
計画の状態
plan:status、plan:verify、plan:next は、ステップや要素の状態を英語の値で表示します。詳しくは実装計画を参照してください。
verified: 検証コマンドがすべて通り、その記録が今も有効な状態。failed: 検証コマンドが失敗した状態。どこかに直すべき箇所があります。blocked: スクリプトがない、データベースにつながらない、時間切れになったなど、環境の都合で検証を実行できなかった状態。実装が間違っているわけではありません。drifted: 検証が通ったあとで、記録したファイルが変更された状態。plan:verify --stepで検証し直します。stalled:Stophook が差し戻しても検証が通らず、理由を記録して打ち切った状態(行き詰まり)。次にplan:nextを実行したときに報告されます。held: 承認後にアプリ側の前提が変わったため、plan:nextがステップを保留にした状態。waived:plan:waiveを使い、未完了のまま受け入れた(免除した)状態。- advisory: 表示はされるものの、
--ciやguren gateを失敗させない参考扱いの結果。