forge

Skill from kousukef/forge

Forge

設計から実装・レビュー・テストまで — Claude Code の開発ワークフローを自動化するプラグインシステム

クイックスタートコマンド仕組みカスタマイズ


Forge とは

Forge は Claude Code のプラグインシステムです。スラッシュコマンド・エージェント・スキル・フックを組み合わせて、要件定義から実装・レビュー・テストまでの開発ライフサイクル全体を自動化します。

/brainstorm → /spec → /implement → /review → /test → /compound

主な特徴:

  • ワンコマンド自動化/ship で設計から実装・レビュー・テストまで一気通貫
  • マルチエージェント並列処理 — 複数のリサーチャー、レビュアーが同時に動く
  • TDD 駆動 — テストファーストで実装し、仕様準拠を自動検証
  • コンテキスト保護 — Main Agent はオーケストレーションに専念し、実装は Sub Agent に委譲
  • 複利ドキュメント — 開発から得た学びを蓄積し、次の開発にフィードバック

クイックスタート

前提条件

  • Claude Code CLI がインストール済み
  • 以下の MCP サーバーが設定済み:
    • Context7 MCP — フレームワーク公式ドキュメント取得用
    • Web Search MCPBrave Search MCP または Tavily MCP)— Web 検索用

3 ステップで導入

BASH
# 1. クローン
git clone https://github.com/kousukef/forge.git
cd forge

# 2. インストール(シンボリックリンク方式)
bash install.sh

# 3. 任意のプロジェクトで Claude Code を起動して使う
cd ~/my-project
claude
> /ship ユーザー認証機能を追加したい

install.sh~/.claude/ 配下にシンボリックリンクを作成します。git pull で更新が自動反映されます。

インストールの詳細

オプション

BASH
bash install.sh -y   # 確認プロンプトをスキップ(CI向け)

何が行われるか

~/.claude/ 配下の各ディレクトリに、Forge の個別ファイルへのシンボリックリンクを作成します。ユーザー独自のコマンドやスキルとの共存が可能です。

~/.claude/
├── commands/
│   ├── brainstorm.md → forge/commands/brainstorm.md   # Forge のコマンド
│   ├── spec.md → forge/commands/spec.md
│   └── my-command.md                                   # ユーザー独自(共存可能)
├── agents/     → forge/agents/ の各ファイルへリンク
├── skills/     → forge/skills/ の各ディレクトリへリンク
├── rules/      → forge/rules/ の各ファイルへリンク
├── reference/  → forge/reference/ の各ファイルへリンク
├── hooks/      → forge/hooks/ の各ファイルへリンク
├── docs/       → forge/docs/ の各ディレクトリへリンク
└── settings.json  (初回のみコピー。既存ファイルは上書きしない)

インストール確認

BASH
ls -la ~/.claude/skills/
# 各スキルが forge/ へのシンボリックリンクになっていれば OK

手動インストール(コピー方式)

シンボリックリンクを使わない場合は手動でコピーできます(git pull による自動更新は不可):

BASH
mkdir -p ~/.claude
cp -r commands/ ~/.claude/commands/
cp -r agents/ ~/.claude/agents/
cp -r skills/ ~/.claude/skills/
cp -r rules/ ~/.claude/rules/
cp -r reference/ ~/.claude/reference/
cp -r hooks/ ~/.claude/hooks/
cp -r docs/ ~/.claude/docs/
cp settings.json ~/.claude/settings.json

アンインストール

BASH
bash uninstall.sh

Forge が作成したシンボリックリンクのみ削除します。ユーザー独自の資産や Claude Code のランタイムファイルには触れません。


コマンド一覧

任意のプロジェクトで Claude Code を起動し、スラッシュコマンドで実行します。

開発ワークフロー

コマンド概要出力
/brainstormソクラテス式対話で要件を深掘りproposal.md
/specリサーチ → 仕様書・タスクリスト生成 → 仕様検証design.md tasks.md delta-spec.md
/implementTDD 駆動の実装(Sub Agent に委譲)実装コード + テスト
/review専門レビュアーによる並列コードレビューレビューレポート
/testテスト・型チェック・lint・ビルド検証の一括実行実行結果レポート
/compound学びの文書化 + スペックマージ + アーカイブdocs/compound/
/ship上記を全て連鎖実行する完全自律パイプライン

ユーティリティ

コマンド概要
/commit変更を分析して Conventional Commits 形式でコミット
/handle-pr-review <PR番号>PR レビューコメントの分析・修正・返信を一括処理
/skill-format <skill-name>ドメインスキルの Phase-Aware ファイル分割

仕組み

全体フロー

  ユーザー: /ship (または個別コマンド)
    │
    ▼
┌──────────────────────────────────────────────────────────────┐
│  /brainstorm                                                 │
│  ソクラテス式対話で要件を深掘り → proposal.md                     │
│                                              [ユーザー承認]     │
├──────────────────────────────────────────────────────────────┤
│  /spec                                                       │
│                                                              │
│  ┌─────────────┐ ┌──────────────┐ ┌───────────┐ ┌────────┐  │
│  │ stack-docs  │ │web-researcher│ │ codebase- │ │compound│  │
│  │ researcher  │ │              │ │ analyzer  │ │learnings│ │
│  └──────┬──────┘ └──────┬───────┘ └─────┬─────┘ └───┬────┘  │
│         └───────────────┴───────────────┴────────────┘       │
│                         ▼                                    │
│              spec-writer → spec-validator                    │
│              design.md / tasks.md / delta-spec.md            │
│                                              [ユーザー承認]     │
├──────────────────────────────────────────────────────────────┤
│  /implement                              ┌──── 以降は自律実行  │
│  Main Agent(オーケストレーション専任)          │                │
│    └─ implementer × N(TDD: RED→GREEN→REFACTOR)             │
├──────────────────────────────────────────────────────────────┤
│  /review                                                     │
│  複数の専門レビュアーが並列でコードを検査                           │
├──────────────────────────────────────────────────────────────┤
│  /test                                                       │
│  テスト → 型チェック → lint → ビルド検証                          │
│  (失敗時は最大3回リトライ)                                      │
├──────────────────────────────────────────────────────────────┤
│  /compound                                                   │
│  学びを記録 + スペックマージ + アーカイブ                          │
└──────────────────────────────────────────────────────────────┘

/brainstorm/spec の後にユーザー承認が必要です。/implement 以降は自律的に実行されます。

マルチエージェント構成

Forge は 4 種類のエージェントグループで構成されています。

リサーチエージェント(/spec Phase 1 で並列起動)

エージェント役割情報源
stack-docs-researcher公式ドキュメントのベストプラクティス取得Context7 MCP
web-researcher最新記事・落とし穴・参考実装の調査Web Search MCP
codebase-analyzer既存コードのパターン・影響範囲分析プロジェクトファイル
compound-learnings-researcher過去の学びから関連教訓を抽出docs/compound/

スペックエージェント(/spec Phase 2-3)

エージェント役割
spec-writerリサーチ結果を統合し design.md / tasks.md / delta-spec を生成
spec-validatorSTRIDE + Google 4 観点で仕様を敵対的に検証

実装エージェント(/implement で起動)

エージェント役割
implementerTDD 駆動の実装(RED → GREEN → REFACTOR)
spec-compliance-reviewer仕様書との照合・逸脱検出
build-error-resolverビルドエラーの最小差分修正

レビューエージェント(/review で並列起動)

セキュリティ・パフォーマンス・アーキテクチャ・型安全性・API 契約など、複数の専門観点からコードを並列に検査します。同梱のレビュアーは agents/review/ で定義されており、プロジェクトに合わせて追加・削除できます。

Context Isolation(コンテキスト分離)

Main Agent のコンテキストウィンドウを保護するため、2 層アーキテクチャを採用しています。

Main Agent(オーケストレーション専任)
  │
  │  仕様書・タスクリストを読み込み、作業を分配
  │  ※ 実装ファイルの Read / Write / Edit は禁止
  │
  ├─ [Teams モード] --teams
  │   teammate 間で直接通信。フィードバックが必要な場面向け
  │
  └─ [Sub Agents モード] --agents(デフォルト)
      独立した並列実行。各タスクが独立して完了できる場面向け

スキルシステム

スキルはエージェントの行動規範を定義する知識ファイルです。1% ルール — 1% でも適用される可能性があれば呼び出します。

方法論スキル(開発手法を規定):

スキル概要
test-driven-developmentTDD の厳格ルール。テスト前のコードは書き直し
systematic-debugging再現→原因特定→修正→防御の 4 フェーズ
verification-before-completionテスト実行結果を貼り付けて完了を証明
iterative-retrievalGlob → Grep → Read で段階的にコンテキスト取得
strategic-compactコンテキスト 80% 超過時の手動コンパクション

ドメインスキル(技術領域の知識):

フレームワーク・ORM・IaC・セキュリティなど、技術領域ごとのベストプラクティスを定義します。ドメインスキルは同梱されていません。ユーザーがプロジェクトに合わせて追加します。

  • /setup コマンドで技術スタックを自動検出し、適切なスキルを検索・インストール
  • skills/ ディレクトリに手動で追加することも可能

ドメインスキルはフェーズに応じて異なる粒度の知識を提供する Phase-Aware 3 ファイル構成 です。

skills/<skill-name>/
├── SKILL.md           # フル知識(~500行)— /implement, /review で使用
├── design.md          # 設計指針(~120行)— /spec で使用
└── constraints.md     # 制約のみ(~30行)— /brainstorm で使用

フェーズごとに必要最小限の知識だけをロードし、コンテキストウィンドウを節約します。

design.mdconstraints.md は Forge が /brainstorm/spec でスキルを参照する際に使用するファイルです。新しいドメインスキルを追加した場合は、SKILL.md を作成した後に以下のコマンドを実行してください:

/skill-format <skill-name>

SKILL.md の内容から design.mdconstraints.md が自動生成されます。

フック(自動ガードレール)

コード品質を自動的に守る仕組みです。

フック動作
block-unnecessary-filesプロジェクトルートへの不要ファイル作成をブロック
detect-console-logデバッグ用ログの消し忘れを警告
require-tmux-for-servers長時間プロセスを tmux 外で実行するのをブロック
gate-git-pushgit push 時にレビュー完了を確認。--force はブロック

同梱のフックは hooks/ で定義されています。プロジェクトに合わせてカスタマイズできます。

OpenSpec 統合

Forge は OpenSpec の仕様管理手法を採用しています。仕様は Delta 記法 + Given/When/Then シナリオで記述され、「生きたドキュメント」として維持されます。

openspec/
├── project.md              # プロジェクトコンテキスト
├── specs/                  # 累積スペック(マージ済みの正式仕様)
└── changes/                # 変更単位の作業ディレクトリ
    ├── <change-name>/      # アクティブな変更
    │   ├── proposal.md     # /brainstorm で生成
    │   ├── design.md       # /spec で生成
    │   ├── tasks.md        # /spec で生成
    │   └── specs/          # デルタスペック
    └── archive/            # /compound で完了分をアーカイブ

カスタマイズ

ユーザー独自のコマンド・スキルを追加

~/.claude/ 配下にファイルを追加するだけです。Forge のシンボリックリンクと共存できます。

BASH
# カスタムコマンドの追加
cat > ~/.claude/commands/my-command.md << 'EOF'
あなたは...
EOF

# カスタムスキルの追加
mkdir -p ~/.claude/skills/my-skill
cat > ~/.claude/skills/my-skill/SKILL.md << 'EOF'
# My Skill
...
EOF

レビューエージェントの追加

agents/review/ にエージェント定義ファイルを追加すると、/review コマンドが自動的に検出します。

YAML
# agents/review/my-reviewer.md
---
name: my-reviewer
description: "このレビュアーの専門領域と検出対象の説明"
model: opus
tools: [Read, Grep, Glob]
skills: [関連ドメインスキル名]
---

# レビュー観点とチェック項目を記述

必須フィールドは namedescription です。/reviewdescription と変更内容を照合して、関連するレビュアーのみを起動します。

ドメインスキルの追加

プロジェクトに合わせたドメインスキルを追加する方法:

  1. /setup コマンド -- 技術スタックを自動検出し、スキルを検索・インストール
  2. 手動追加 -- skills/<skill-name>/SKILL.md を作成し、/skill-format <skill-name> で Phase-Aware 3 ファイル構成を自動生成

リファレンスの追加

ルールは 2 層構造です。

  • rules/ -- 常時読み込みされる基本ルール(エスカレーション・セキュリティ・Git 規約)
  • reference/ -- オンデマンドで参照される詳細ルール(言語規約・テスト・フレームワーク固有)

reference/ 配下にプロジェクト固有のルールファイルを追加できます。CLAUDE.md の Reference テーブルにエントリを追加すると、必要な場面で自動的に参照されます。

settings.json

初回インストール時にコピーされます。既存の設定がある場合は上書きしません。設定を更新する場合は settings.template.json をテンプレートとして参照してください。


リポジトリ構成

forge/
├── install.sh / uninstall.sh     # インストーラー
├── CLAUDE.md                      # プロジェクト CLAUDE.md テンプレート
├── USER-CLAUDE.md                 # ユーザー CLAUDE.md テンプレート
├── settings.json                  # Claude Code 設定
│
├── commands/                      # スラッシュコマンド定義
│   ├── brainstorm.md
│   ├── spec.md
│   ├── implement.md
│   ├── review.md
│   ├── test.md
│   ├── compound.md
│   ├── ship.md
│   ├── commit.md
│   ├── handle-pr-review.md
│   └── skill-format.md
│
├── agents/                        # エージェント定義
│   ├── research/                  #   リサーチ(4種)
│   ├── spec/                      #   スペック(2種)
│   ├── orchestration/             #   オーケストレーション(1種)
│   ├── implementation/            #   実装(3種)
│   └── review/                    #   レビュー(カスタムレビュアーを配置)
│
├── skills/                        # スキル定義
│   ├── forge-skill-orchestrator/  #   方法論スキル(SKILL.md のみ)
│   ├── test-driven-development/
│   ├── <domain-skill>/            #   ドメインスキル(3ファイル構成)
│   │   ├── SKILL.md
│   │   ├── design.md
│   │   └── constraints.md
│   └── ...
│
├── rules/                         # 常時読み込みルール
├── reference/                     # オンデマンド参照ルール
├── hooks/                         # フック(自動ガードレール)
├── docs/                          # 複利ドキュメント
└── openspec/                      # OpenSpec 仕様管理

ライセンス

MIT