委託エンジニア向けセットアップガイド設計
1. 概要
業務委託エンジニアが Issue Outsource Platform に参加し、初回 Issue に着手するまでの全手順を設計する。環境構築、認証設定、スキルインストール、Issue 着手から納品までのステップバイステップガイドを含む。
2. 全体フロー
mermaid
graph LR
A["招待受領"] --> B["環境構築"]
B --> C["認証設定"]
C --> D["スキルセット<br/>インストール"]
D --> E["初回Issue<br/>着手"]
E --> F["実装・MR作成"]
F --> G["レビュー・納品"]3. 前提条件
| 項目 | 要件 |
|---|---|
| OS | macOS (Keychain 利用のため) |
| Node.js | v20 以上 |
| Python | 3.11 以上 |
| Git | 2.40 以上 (worktree サポート) |
| Claude Code CLI | 最新版 |
| エディタ | VS Code 推奨(Claude Code 拡張対応) |
4. 環境構築手順
4.1 Claude Code CLI インストール
bash
# Claude Code CLI インストール
npm install -g @anthropic-ai/claude-code
# バージョン確認
claude --version
# 初回認証(Anthropic アカウント)
claude auth login4.2 Git 設定
bash
# Git ユーザー設定
git config --global user.name "Your Name"
git config --global user.email "your-email@example.com"
# Git worktree が使えることを確認
git worktree list4.3 GitLab SSH 設定
bash
# SSH鍵の生成(未作成の場合)
ssh-keygen -t ed25519 -C "your-email@example.com"
# SSH公開鍵の取得(GitLab に登録する)
cat ~/.ssh/id_ed25519.pub
# SSH接続テスト
ssh -T git@gitlab.ethan-tech.jpGitLab での登録手順:
- GitLab にログイン
- User Settings > SSH Keys
- 公開鍵を貼り付けて登録
4.4 GitLab トークン設定
bash
# GitLab Personal Access Token を macOS Keychain に保存
# ※ トークンは GitLab > User Settings > Access Tokens から発行
# ※ スコープ: api, read_user, read_repository, write_repository
security add-generic-password -s "GITLAB_TOKEN" -a "$USER" -w "<your-token>" -U
# .zshrc に環境変数の参照を追加
echo 'export GITLAB_TOKEN=$(security find-generic-password -s "GITLAB_TOKEN" -a "$USER" -w)' >> ~/.zshrc
source ~/.zshrc
# 動作確認
curl -s --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "https://gitlab.ethan-tech.jp/api/v4/user" | jq .username4.5 Anthropic API キー設定
bash
# Anthropic API Key を Keychain に保存
# ※ マネージャーから提供される or Anthropic Console から取得
security add-generic-password -s "ANTHROPIC_API_KEY" -a "$USER" -w "<your-api-key>" -U
# .zshrc に環境変数の参照を追加
echo 'export ANTHROPIC_API_KEY=$(security find-generic-password -s "ANTHROPIC_API_KEY" -a "$USER" -w)' >> ~/.zshrc
source ~/.zshrc5. プロジェクト参加フロー
5.1 招待から環境構築まで
mermaid
sequenceDiagram
participant Manager as マネージャー
participant Platform as Platform
participant Engineer as 委託エンジニア
participant GitLab as GitLab
Manager->>Platform: エンジニア招待(メール/Slack)
Platform->>GitLab: プロジェクトメンバー追加 (Developer)
Platform->>Engineer: 招待通知(参加URL + 手順書リンク)
Engineer->>Platform: 招待リンクからログイン(GitLab OAuth)
Platform->>Engineer: プロジェクト参加完了 + セットアップガイド表示
Engineer->>Engineer: 環境構築(Section 4 の手順)
Engineer->>GitLab: SSH接続テスト
Engineer->>Engineer: リポジトリ clone
Engineer->>Platform: セットアップ完了報告
Platform->>Manager: セットアップ完了通知5.2 リポジトリ Clone
bash
# リポジトリの clone
git clone git@gitlab.ethan-tech.jp:aieo/issueoutsourcing.git
cd issueoutsourcing
# CLAUDE.md の確認(プロジェクトルールの把握)
cat CLAUDE.md
# 依存パッケージのインストール
npm install # frontend
pip install -r requirements.txt # backend6. スキルセットのインストール・設定
6.1 標準スキルセットの構成
| スキル | 用途 | 必須/任意 |
|---|---|---|
| dev-workflow | Issue 調査→実装→MR 作成 | 必須 |
| multiAgentManageRule | 複数 Issue 並行開発 | 推奨 |
| create-docs | 設計ドキュメント生成 | 任意 |
| multilocalhosts | ローカル開発サーバー管理 | 任意 |
6.2 スキルインストール手順
bash
# Skills ディレクトリの確認
ls ~/Documents/WorkSpace/otani/Skills/
# dev-workflow スキルの確認
cat ~/Documents/WorkSpace/otani/Skills/dev-workflow/SKILL.md
# CLAUDE.md にスキル参照が記載されていることを確認
grep -n "Skills" CLAUDE.md6.3 .claude/ ディレクトリの設定
bash
# .claude ディレクトリの確認
ls -la .claude/
# settings.local.json の確認(権限設定)
cat .claude/settings.local.json
# エージェント定義の確認
ls .claude/agents/6.4 動作確認
bash
# Claude Code を起動して動作確認
claude
# スキルが認識されていることを確認(Claude Code 内で)
# > /dev-workflow と入力して応答を確認7. Issue 着手から納品までのステップバイステップガイド
7.1 全体フロー図
mermaid
graph TD
A["Step 1: Issue 選択・取得"] --> B["Step 2: worktree 作成"]
B --> C["Step 3: Claude Code 起動"]
C --> D["Step 4: Issue 調査"]
D --> E["Step 5: 実装"]
E --> F["Step 6: テスト"]
F --> G["Step 7: MR 作成"]
G --> H["Step 8: レビュー対応"]
H --> I["Step 9: マージ・納品完了"]
style A fill:#e1f5fe
style I fill:#c8e6c9Step 1: Issue 選択・取得
bash
# Platform UI で Issue 一覧を確認
# → 着手したい Issue の「取得」ボタンをクリック
# → 自動的に GitLab でアサインされる
# または CLI で確認
GITLAB_TOKEN=$(security find-generic-password -s "GITLAB_TOKEN" -a "$USER" -w)
curl -s --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"https://gitlab.ethan-tech.jp/api/v4/projects/78/issues?state=opened&labels=available" \
| jq '.[] | {iid, title, labels}'Step 2: worktree 作成
bash
# プロジェクトルートに移動
cd /path/to/issueoutsourcing
# Issue 番号に対応する worktree を作成
git fetch origin
git worktree add ../issueOutsource-worktrees/issue-{N} -b feature/issue-{N} origin/main
# worktree に移動
cd ../issueOutsource-worktrees/issue-{N}Step 3: Claude Code 起動
bash
# Claude Code を起動
claude
# CLAUDE.md が読み込まれ、プロジェクトルールが適用される
# dev-workflow スキルが自動認識されるStep 4: Issue 調査
Claude Code 内で以下を実行:
このIssueの対応をしてdev-workflow スキルが自動発動し、以下を実行:
- GitLab API で Issue 詳細を取得
- 既存コードベースの調査
- 実装計画の策定
- GitLab Issue にコメント(着手報告)
Step 5: 実装
Claude Code が実装計画に基づいてコードを生成:
- コーディング規約に準拠
- 適切な粒度でコミット
- AGENT_LOG.md に進捗を記録
Step 6: テスト
bash
# テスト実行(プロジェクトに応じて)
npm test # frontend
pytest # backend
# lint チェック
npm run lint
flake8 .Step 7: MR 作成
Claude Code が自動で MR を作成:
- MR テンプレート(
mr-template.md)を自動適用 - 変更サマリーを自動生成
- テスト結果を添付
- GitLab Issue とリンク (
Closes #N)
bash
# MR 作成(Claude Code 内で自動実行)
# git push → GitLab API で MR 作成 → 報告資料添付Step 8: レビュー対応
# レビューコメントがあった場合
# Claude Code で対応:
レビューコメントを確認して修正して- レビュアーの指摘に対して修正
- 修正コミット → push
- レビュアーに再レビュー依頼
Step 9: マージ・納品完了
- レビュアーが Approve → MR マージ
- Platform が Webhook で検知 → 報酬確定
- エンジニアに納品完了通知
bash
# worktree のクリーンアップ(マージ完了後)
cd /path/to/issueoutsourcing
git worktree remove ../issueOutsource-worktrees/issue-{N}
git branch -d feature/issue-{N}8. トラブルシューティング
8.1 よくある問題と解決策
| 問題 | 原因 | 解決策 |
|---|---|---|
claude コマンドが見つからない | PATH 未設定 | npm install -g @anthropic-ai/claude-code を再実行 |
| GitLab SSH 接続失敗 | SSH鍵未登録 | Section 4.3 の手順を再確認 |
GITLAB_TOKEN が空 | Keychain 未登録 | Section 4.4 の手順で再設定 |
| worktree 作成失敗 | ブランチ名重複 | git worktree list で確認し、既存を削除 |
| スキルが認識されない | CLAUDE.md にスキル記載なし | CLAUDE.md のスキルセクションを確認 |
| MR 作成失敗 | 権限不足 | GitLab でのロール (Developer) を確認 |
8.2 サポート窓口
- Slack:
#issue-outsource-supportチャンネル - GitLab Issue: プラットフォームリポジトリに Issue を作成
- ドキュメント: Platform UI 内のヘルプセクション
9. セキュリティ注意事項
- トークンの取り扱い: 全てのトークン・APIキーは macOS Keychain に保存する。
.envファイルへの平文記載は厳禁。 - コミット前確認:
.gitignoreに機密ファイルが含まれていることを確認する。 - SSH鍵: パスフレーズ付きの SSH 鍵を推奨する。
- 作業範囲: アサインされた Issue の範囲内でのみ変更を行う。他の Issue や共通部分への変更が必要な場合はマネージャーに相談する。
10. Platform UI での管理画面設計(将来実装)
10.1 エンジニアダッシュボード
+------------------------------------------+
| Issue Outsource Platform |
+------------------------------------------+
| マイ Issue | 環境ステータス |
| ┌─────────────────┐ | Claude Code: OK |
| │ #11 dev-workflow │ | GitLab SSH: OK |
| │ ステータス: 実装中│ | Token: 有効 |
| │ 報酬: ¥50,000 │ | |
| └─────────────────┘ | スキル |
| ┌─────────────────┐ | ✓ dev-workflow |
| │ #12 UI実装 │ | ✓ multiAgent |
| │ ステータス: 未着手│ | ✓ create-docs |
| │ 報酬: ¥30,000 │ | |
| └─────────────────┘ | |
+------------------------------------------+10.2 セットアップウィザード
Platform UI にセットアップウィザードを実装し、各ステップの完了状態をリアルタイムで表示する。
| ステップ | チェック方法 | API |
|---|---|---|
| Claude Code インストール | バージョン情報の報告 | POST /api/setup/check-claude |
| GitLab SSH | SSH接続テスト結果 | POST /api/setup/check-ssh |
| Token 設定 | GitLab API 疎通確認 | POST /api/setup/check-token |
| リポジトリ Clone | ローカルパス報告 | POST /api/setup/check-repo |
| スキル確認 | スキル一覧報告 | POST /api/setup/check-skills |