refactor(claude): agent fleet を fleet/agents へ分離・右サイズ化 (12体)#36
Conversation
vault 設計 (projects/ai-org/chat/agent-fleet) に従い agent fleet を改修: - 移動: claude/agents → claude/fleet/agents (AI 組織専用層・非 symlink) - 改名: developer-* → dev-*、reviewer-* → rev-* - 統合: react+nextjs → dev-react / nodejs+nestjs+hono → dev-nodejs - 新規: dev-react-native、dev-infra - 削除: developer-ruby (実利用なし・generic フォールバック) - model: rev-* を opus に格上げ (品質ゲート強化)、dev-* は sonnet 据え置き - skills: dev-flutter/dev-react-native/dev-react/dev-nodejs の frontmatter に fleet/skills の許可リストを追加 (source repo 別にマッピング) 波及: - nix/modules/home/claude.nix: .claude/agents symlink を除去 (fleet 層は非 symlink、 remote 時のみ inject-fleet.sh が ~/.claude/agents へ inject) - feature-team SKILL.md/parent.md/README.md/_common.md: roster 表・subagent_type 参照を新名・新構成へ追従 - docs プランの旧 agent 名参照を追従 DOT-45
WalkthroughClaude エージェント fleet 全体の命名体系を developer-/reviewer- から dev-/rev- へ統一し、新規インフラ・バックエンド専門エージェントを追加。Feature-team オーケストレーション層全体で参照を更新し、reviewer モデルを sonnet から opus に切り替え。 Changesエージェント Fleet 再編と命名統一
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
claude/fleet/agents/dev-nodejs.md (1)
1-214:⚠️ Potential issue | 🟡 Minorclaude/AGENTS.md の「Repository Structure(リポジトリ構造)」更新が必要です
claude/AGENTS.mdにはdev-nodejs/dev-react/dev-react-native/dev-infraの記載がなく、Repository Structure(リポジトリ構造)セクション自体も見当たりません。新規エージェント(claude/fleet/agents/dev-nodejs.mdなど)を追加したなら、該当する「Repository Structure」セクションを作成/更新してエージェントを明示してください。🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@claude/fleet/agents/dev-nodejs.md` around lines 1 - 214, Add or update the "Repository Structure" section in AGENTS.md to explicitly list the new agents (dev-nodejs, dev-react, dev-react-native, dev-infra) and describe their roles; include a short bullet/paragraph for each agent naming its runtime/framework scope (e.g., dev-nodejs -> Node.js 20+ backend, NestJS/Hono support), where to find their implementation (reference by agent name), and a one-line note about which agent to use for Next.js or browser frontends (dev-react). Ensure the section header is exactly "Repository Structure" and that each agent name appears verbatim so future reviewers can discover and maintain these entries.Source: Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@claude/fleet/agents/dev-infra.md`:
- Around line 1-7: Add the new agent "dev-infra" to the master agent registry
and SSOT by updating AGENTS.md and claude/AGENTS.md: insert an entry for
dev-infra that mirrors the front-matter from claude/fleet/agents/dev-infra.md
(name: dev-infra, short description, tools list, model, color) into the Agents
list and the Repository Structure/Agent responsibilities section, include the
invocation note ("Invoked from `feature-team`...") and the scope
(“infrastructure / DevOps changes — IaC, Docker, CI/CD, PaaS deploy config”),
and mark the document change as pending user approval per the original comment.
---
Outside diff comments:
In `@claude/fleet/agents/dev-nodejs.md`:
- Around line 1-214: Add or update the "Repository Structure" section in
AGENTS.md to explicitly list the new agents (dev-nodejs, dev-react,
dev-react-native, dev-infra) and describe their roles; include a short
bullet/paragraph for each agent naming its runtime/framework scope (e.g.,
dev-nodejs -> Node.js 20+ backend, NestJS/Hono support), where to find their
implementation (reference by agent name), and a one-line note about which agent
to use for Next.js or browser frontends (dev-react). Ensure the section header
is exactly "Repository Structure" and that each agent name appears verbatim so
future reviewers can discover and maintain these entries.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: c4a6a7d1-0e19-465e-9f82-c0c257094180
📒 Files selected for processing (24)
claude/agents/developer-hono.mdclaude/agents/developer-nestjs.mdclaude/agents/developer-nextjs.mdclaude/agents/developer-nodejs.mdclaude/agents/developer-react.mdclaude/agents/developer-ruby.mdclaude/fleet/agents/dev-flutter.mdclaude/fleet/agents/dev-generic.mdclaude/fleet/agents/dev-go.mdclaude/fleet/agents/dev-infra.mdclaude/fleet/agents/dev-nodejs.mdclaude/fleet/agents/dev-react-native.mdclaude/fleet/agents/dev-react.mdclaude/fleet/agents/dev-rust.mdclaude/fleet/agents/pr-publisher.mdclaude/fleet/agents/rev-performance.mdclaude/fleet/agents/rev-quality.mdclaude/fleet/agents/rev-security.mdclaude/skills/feature-team/README.mdclaude/skills/feature-team/SKILL.mdclaude/skills/feature-team/roles/_common.mdclaude/skills/feature-team/roles/parent.mddocs/superpowers/plans/2026-05-01-wt-cleanup.mdnix/modules/home/claude.nix
💤 Files with no reviewable changes (6)
- claude/agents/developer-hono.md
- claude/agents/developer-react.md
- claude/agents/developer-nextjs.md
- claude/agents/developer-nodejs.md
- claude/agents/developer-ruby.md
- claude/agents/developer-nestjs.md
| --- | ||
| name: dev-infra | ||
| description: Use when implementing infrastructure / DevOps changes — IaC (Terraform/OpenTofu), Docker, CI/CD (GitHub Actions), and deploy config for PaaS targets (Google App Engine, Firebase, Vercel, Cloudflare). Invoked from `feature-team` for sub-issue implementation, or as a standalone single-task agent for infra work. Not for application feature code (use the language-specific dev-* agent). | ||
| tools: Bash, Edit, Write, Read, Glob, Grep, NotebookEdit, NotebookRead, TodoWrite, WebFetch, WebSearch, BashOutput, KillShell, LSP | ||
| model: sonnet | ||
| color: orange | ||
| --- |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: AGENTS.md に dev-infra の記載があるか、また claude/fleet/agents/ ディレクトリ構造の記載があるかを確認
# AGENTS.md の存在確認と dev-infra の言及確認
if [ -f "AGENTS.md" ]; then
echo "=== AGENTS.md exists ==="
echo -e "\n=== Checking for dev-infra references ==="
rg -n "dev-infra" AGENTS.md || echo "No dev-infra references found"
echo -e "\n=== Checking for claude/fleet/agents references ==="
rg -n "claude/fleet" AGENTS.md || echo "No claude/fleet references found"
echo -e "\n=== Checking agent roster count/list ==="
rg -nC3 "agent.*fleet|12.*agent|エージェント.*12" AGENTS.md || echo "No roster count found"
else
echo "AGENTS.md not found in repository root"
fi
# claude/AGENTS.md の確認(claude/ 配下にある可能性)
if [ -f "claude/AGENTS.md" ]; then
echo -e "\n=== claude/AGENTS.md exists ==="
echo -e "\n=== Checking for dev-infra references ==="
rg -n "dev-infra" claude/AGENTS.md || echo "No dev-infra references found"
echo -e "\n=== Checking for fleet/agents references ==="
rg -n "fleet/agents" claude/AGENTS.md || echo "No fleet/agents references found"
fiRepository: gotomts/dotfiles
Length of output: 1040
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# 1) リポジトリ内で dev-infra の参照箇所を探索
echo "=== rg 'dev-infra' (全repo) ==="
rg -n "dev-infra" . || true
# 2) AGENTS.md の Repository Structure 周辺を確認
echo
echo "=== AGENTS.md: Repository Structure 近辺 ==="
if [ -f "AGENTS.md" ]; then
# セクション見出しっぽい行を含めて近辺だけ表示
rg -n "Repository Structure" AGENTS.md || true
# 可能ならその周辺を抽出
rg -n --context 5 "Repository Structure" AGENTS.md || true
fi
# 3) agent 一覧/ロスターっぽい語を探索(AGENTS.md, claude/AGENTS.md)
for f in AGENTS.md claude/AGENTS.md; do
if [ -f "$f" ]; then
echo
echo "=== $f: agent/エージェント一覧系の語 ==="
rg -n --ignore-case "agent(s)?|エージェント|一覧|roster|fleet" "$f" || true
fi
done
# 4) dev-infra が属する claude/fleet/agents/ の中で、名前(name:)がどこまで並んでいるか軽く確認
echo
echo "=== claude/fleet/agents/*.md の frontmatter(name) 一覧(可能なら) ==="
if [ -d "claude/fleet/agents" ]; then
fd -e md . claude/fleet/agents | head -n 50 | sed 's#^./##' >/tmp/agent_md_files.txt || true
# 全て出力するのではなく、frontmatter の name: のみ拾う
while read -r p; do
echo "--- $p ---"
rg -n "^name:\s*" "$p" || true
done < /tmp/agent_md_files.txt
fiRepository: gotomts/dotfiles
Length of output: 3153
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# 1) リポジトリ内で dev-infra の参照箇所を探索
echo "=== rg 'dev-infra' (全repo) ==="
rg -n "dev-infra" . || true
# 2) AGENTS.md の Repository Structure 周辺を確認
echo
echo "=== AGENTS.md: Repository Structure 近辺 ==="
if [ -f "AGENTS.md" ]; then
# セクション見出しっぽい行を含めて近辺だけ表示
rg -n "Repository Structure" AGENTS.md || true
# 可能ならその周辺を抽出
rg -n --context 5 "Repository Structure" AGENTS.md || true
fi
# 3) agent 一覧/ロスターっぽい語を探索(AGENTS.md, claude/AGENTS.md)
for f in AGENTS.md claude/AGENTS.md; do
if [ -f "$f" ]; then
echo
echo "=== $f: agent/エージェント一覧系の語 ==="
rg -n --ignore-case "agent(s)?|エージェント|一覧|roster|fleet" "$f" || true
fi
done
# 4) dev-infra が属する claude/fleet/agents/ の中で、名前(name:)がどこまで並んでいるか軽く確認
echo
echo "=== claude/fleet/agents/*.md の frontmatter(name) 一覧(可能なら) ==="
if [ -d "claude/fleet/agents" ]; then
fd -e md . claude/fleet/agents | head -n 50 | sed 's#^./##' >/tmp/agent_md_files.txt || true
# 全て出力するのではなく、frontmatter の name: のみ拾う
while read -r p; do
echo "--- $p ---"
rg -n "^name:\s*" "$p" || true
done < /tmp/agent_md_files.txt
fiRepository: gotomts/dotfiles
Length of output: 3153
dev-infra 追加に伴う AGENTS.md/claude/AGENTS.md 記載漏れを確認
dev-infraはclaude/fleet/agents/dev-infra.md以外に、AGENTS.mdおよびclaude/AGENTS.mdへは反映されていません。- 新規エージェントとして
claude/AGENTS.md(SSOT)のエージェント一覧/Repository Structure 等にdev-infraと責務を追記してください(ドキュメント更新はユーザー承認前提)。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@claude/fleet/agents/dev-infra.md` around lines 1 - 7, Add the new agent
"dev-infra" to the master agent registry and SSOT by updating AGENTS.md and
claude/AGENTS.md: insert an entry for dev-infra that mirrors the front-matter
from claude/fleet/agents/dev-infra.md (name: dev-infra, short description, tools
list, model, color) into the Agents list and the Repository Structure/Agent
responsibilities section, include the invocation note ("Invoked from
`feature-team`...") and the scope (“infrastructure / DevOps changes — IaC,
Docker, CI/CD, PaaS deploy config”), and mark the document change as pending
user approval per the original comment.
Source: Learnings
* feat(claude): default role で fleet 層をローカル展開 (DOT-45 改訂追従) DOT-45 ブリーフ改訂「AI 組織開発を default のベースにする」に追従。A2 (PR #36) は旧方針 (fleet 非 symlink・remote inject のみ) で実装・マージ済みのため、その後の 改訂を本 PR で反映する。 - nix/modules/home/claude.nix を role 対応に: - default role: claude/fleet/agents を ~/.claude/agents に symlink、 claude/fleet/skills を個人層 (claude/skills) とマージして ~/.claude/skills に per-entry symlink で展開 (activation。2 source dir を 1 symlink で束ねられず、 かつ eval 時に working tree を読むと CI が壊れるため activation 方式) - sub-1 等の別 role: 個人層スキルのみ。fleet は展開しない - remote の inject-fleet.sh は role 非依存・本モジュールと独立 (不変) - AGENTS.md: リポジトリ構造 (agents は claude/fleet/agents 12 体へ移動) と fleet 配送モデル (default ローカル展開 / 別 role 除外 / remote inject) を改訂 DOT-45 * style(claude): claude.nix のコメントを削減・チケットキーを除去 * docs(agents): AGENTS.md からチケットキー参照を除去 --------- Co-authored-by: Claude <noreply@anthropic.com>
概要
DOT-45 (A2)。vault 設計
projects/ai-org/chat/agent-fleet/design-notes.md(真実源)に従い agent fleet を改修。A1 (#35) で AGENTS.md に fleet 前提を入れた後の実体化フェーズ。人間レビュー後・手動マージ(auto-merge しない)。変更内容
roster(14 → 12 体)
claude/agents/→claude/fleet/agents/(個人層 → AI 組織専用層・非 symlink)developer-*→dev-*、reviewer-*→rev-*、pr-publisher据え置きdeveloper-react+developer-nextjs→dev-react(Next.js 固有はnext-*スキル)/developer-nodejs+developer-nestjs+developer-hono→dev-nodejsdev-react-native(Expo/RN)、dev-infra(IaC/Docker/CI/PaaS)developer-ruby(実利用なし・generic フォールバック。人手確認済み)rev-*をopusに格上げ(品質ゲート強化)、dev-*はsonnet据え置き、pr-publisher据え置きskills: allow-list(
skills-lock.jsonの source repo 別にマッピング)dev-flutterdev-react-nativedev-reactdev-nodejsdev-go/dev-rust/dev-infra/dev-generic波及(旧名参照の追従結果)
nix/modules/home/claude.nix:.claude/agentssymlink を除去(fleet 層は非 symlink。remote 時のみinject-fleet.shが~/.claude/agentsへ inject)。コメントも二層構造に追従claude/skills/feature-team/:SKILL.md/roles/parent.md/README.md/roles/_common.mdの roster 表・subagent_type参照・図を新名/新構成へ改書docs/superpowers/plans/2026-05-01-wt-cleanup.md: 旧developer-generic参照を追従developer-*/reviewer-*トークンが残っていないことを確認済み触っていないもの(ガードレール遵守)
claude/fleet/inject-fleet.sh・skills 本体は不変(hook は既に fleet/agents 対応済み)前提との差異
claude/fleet/skillsに未収録のためskills:に追加していない(存在しないスキル名を書かない)。公式・自作で用意され次第、別タスクで全 dev に追加するのが妥当。dev-go/dev-rust/dev-infraは設計どおり当面スキルなし(組み込み知識+generic フォールバックで動作)。完了条件の確認
claude/fleet/agentsに dev-/rev- で存在、model・skills 設定済み~/.claude/agentsから fleet が消えて clean になる)https://claude.ai/code/session_015R1g7uW4DpstGRaqSDgMsG
Generated by Claude Code
Summary by CodeRabbit
リリースノート
新機能
改善